Difference between revisions of "Status Matrix"
From gem5
(→MIPS) |
|||
Line 182: | Line 182: | ||
|} | |} | ||
− | === | + | === ARM === |
{| border="1" class="wikitable" align=center style="background:#B0C4DE;" | {| border="1" class="wikitable" align=center style="background:#B0C4DE;" | ||
Line 199: | Line 199: | ||
!rowspan="2"|SE | !rowspan="2"|SE | ||
|uni | |uni | ||
− | | style="background: | + | | style="background: green; color: white" | |
| style="background: red; color: white" | Note 1 | | style="background: red; color: white" | Note 1 | ||
| style="background: red; color: white" | Note 1 | | style="background: red; color: white" | Note 1 | ||
Line 207: | Line 207: | ||
|- | |- | ||
|multi | |multi | ||
− | | style="background: | + | | style="background: green; color: white" | |
| style="background: red; color: white" | Note 1 | | style="background: red; color: white" | Note 1 | ||
| style="background: red; color: white" | Note 1 | | style="background: red; color: white" | Note 1 | ||
Line 216: | Line 216: | ||
!rowspan="2"|FS | !rowspan="2"|FS | ||
|uni | |uni | ||
− | | style="background: | + | | style="background: green; color: white" | |
| style="background: red; color: white" | Note 1 | | style="background: red; color: white" | Note 1 | ||
| style="background: red; color: white" | Note 1 | | style="background: red; color: white" | Note 1 | ||
Line 224: | Line 224: | ||
|- | |- | ||
|multi | |multi | ||
− | | style="background: | + | | style="background: green; color: white" | |
| style="background: red; color: white" | Note 1 | | style="background: red; color: white" | Note 1 | ||
| style="background: red; color: white" | Note 1 | | style="background: red; color: white" | Note 1 | ||
Line 232: | Line 232: | ||
|- | |- | ||
!rowspan="4"|TimingSimple | !rowspan="4"|TimingSimple | ||
− | !rowspan="2"|SE | + | !rowspan="2"|SE |
|uni | |uni | ||
− | | style="background: | + | | style="background: green; color: white" | |
− | | style="background: | + | | style="background: orange; color: white"| |
− | | style="background: | + | | style="background: orange; color: white"| |
− | | style="background: | + | | style="background: orange; color: white" | |
− | | style="background: | + | | style="background: orange; color: white" | |
− | | style="background: | + | | style="background: orange; color: white" | |
|- | |- | ||
|multi | |multi | ||
− | | style="background: | + | | style="background: green; color: white" | |
− | | style="background: | + | | style="background: red; color: white"| Note 2 |
− | | style="background: | + | | style="background: orange; color: white"| |
− | | style="background: | + | | style="background: orange; color: white" | |
− | | style="background: | + | | style="background: orange; color: white" | |
− | | style="background: | + | | style="background: orange; color: white" | |
|- | |- | ||
!rowspan="2"|FS | !rowspan="2"|FS | ||
|uni | |uni | ||
− | |||
− | |||
− | |||
| style="background: green; color: white" | | | style="background: green; color: white" | | ||
− | | style="background: | + | | style="background: orange; color: white"| |
− | | style="background: | + | | style="background: orange; color: white"| |
+ | | style="background: orange; color: white" | | ||
+ | | style="background: orange; color: white" | | ||
+ | | style="background: orange; color: white" | | ||
|- | |- | ||
|multi | |multi | ||
− | | style="background: | + | | style="background: green; color: white" | |
− | | style="background: | + | | style="background: red; color: white"| Note 2 |
− | | style="background: | + | | style="background: orange; color: white"| |
− | | style="background: | + | | style="background: orange; color: white" | |
− | | style="background: | + | | style="background: orange; color: white" | |
− | | style="background: | + | | style="background: orange; color: white" | |
|- | |- | ||
!rowspan="4"|InOrder | !rowspan="4"|InOrder | ||
!rowspan="2"|SE | !rowspan="2"|SE | ||
|uni | |uni | ||
− | | style="background: | + | | style="background: green; color: white" | |
| style="background: red; color: white" | | | style="background: red; color: white" | | ||
| style="background: red; color: white" | | | style="background: red; color: white" | | ||
Line 277: | Line 277: | ||
|- | |- | ||
|multi | |multi | ||
− | | style="background: | + | | style="background: green; color: white" | |
| style="background: red; color: white" | | | style="background: red; color: white" | | ||
| style="background: red; color: white" | | | style="background: red; color: white" | | ||
Line 286: | Line 286: | ||
!rowspan="2"|FS | !rowspan="2"|FS | ||
|uni | |uni | ||
− | | style="background: | + | | style="background: green; color: white" | |
| style="background: red; color: white" | | | style="background: red; color: white" | | ||
| style="background: red; color: white" | | | style="background: red; color: white" | | ||
Line 294: | Line 294: | ||
|- | |- | ||
|multi | |multi | ||
− | | style="background: | + | | style="background: green; color: white" | |
| style="background: red; color: white" | | | style="background: red; color: white" | | ||
| style="background: red; color: white" | | | style="background: red; color: white" | | ||
Line 302: | Line 302: | ||
|- | |- | ||
!rowspan="4"|O3 | !rowspan="4"|O3 | ||
− | !rowspan="2"|SE | + | !rowspan="2"|SE |
|uni | |uni | ||
− | | style="background: | + | | style="background: green; color: white" | |
− | | style="background: | + | | style="background: orange; color: white"| |
− | | style="background: | + | | style="background: orange; color: white"| |
− | | style="background: | + | | style="background: orange; color: white" | |
− | | style="background: | + | | style="background: orange; color: white" | |
− | | style="background: | + | | style="background: orange; color: white" | |
|- | |- | ||
|multi | |multi | ||
− | | style="background: | + | | style="background: green; color: white" | |
− | | style="background: red; color: white" | Note 2 | + | | style="background: red; color: white"| Note 2 |
− | | style="background: | + | | style="background: orange; color: white" | |
− | | style="background: | + | | style="background: orange; color: white" | |
− | | style="background: | + | | style="background: orange; color: white" | |
− | | style="background: | + | | style="background: orange; color: white" | |
|- | |- | ||
!rowspan="2"|FS | !rowspan="2"|FS | ||
|uni | |uni | ||
− | | style="background: | + | | style="background: green; color: white" | |
− | | style="background: red; color: white" | Note 2 | + | | style="background: red; color: white"| Note 2 |
− | | style="background: | + | | style="background: orange; color: white"| |
− | | style="background: | + | | style="background: orange; color: white" | |
− | | style="background: | + | | style="background: orange; color: white" | |
− | | style="background: | + | | style="background: orange; color: white" | |
|- | |- | ||
|multi | |multi | ||
− | | style="background: | + | | style="background: green; color: white" | |
− | | style="background: red; color: white" | Note 2 | + | | style="background: red; color: white"| Note 2 |
− | | style="background: | + | | style="background: orange; color: white" | |
− | | style="background: | + | | style="background: orange; color: white" | |
− | | style="background: | + | | style="background: orange; color: white" | |
− | | style="background: | + | | style="background: orange; color: white" | |
|- | |- | ||
|} | |} | ||
− | === | + | === x86 === |
{| border="1" class="wikitable" align=center style="background:#B0C4DE;" | {| border="1" class="wikitable" align=center style="background:#B0C4DE;" | ||
Line 355: | Line 355: | ||
!rowspan="2"|SE | !rowspan="2"|SE | ||
|uni | |uni | ||
− | | style="background: | + | | style="background: yellow;" | |
| style="background: red; color: white" | Note 1 | | style="background: red; color: white" | Note 1 | ||
| style="background: red; color: white" | Note 1 | | style="background: red; color: white" | Note 1 | ||
Line 363: | Line 363: | ||
|- | |- | ||
|multi | |multi | ||
− | | style="background: | + | | style="background: yellow;" | |
| style="background: red; color: white" | Note 1 | | style="background: red; color: white" | Note 1 | ||
| style="background: red; color: white" | Note 1 | | style="background: red; color: white" | Note 1 | ||
Line 372: | Line 372: | ||
!rowspan="2"|FS | !rowspan="2"|FS | ||
|uni | |uni | ||
− | | style="background: | + | | style="background: yellow;" | |
| style="background: red; color: white" | Note 1 | | style="background: red; color: white" | Note 1 | ||
| style="background: red; color: white" | Note 1 | | style="background: red; color: white" | Note 1 | ||
Line 380: | Line 380: | ||
|- | |- | ||
|multi | |multi | ||
− | | style="background: | + | | style="background: yellow;" | |
| style="background: red; color: white" | Note 1 | | style="background: red; color: white" | Note 1 | ||
| style="background: red; color: white" | Note 1 | | style="background: red; color: white" | Note 1 | ||
Line 388: | Line 388: | ||
|- | |- | ||
!rowspan="4"|TimingSimple | !rowspan="4"|TimingSimple | ||
− | !rowspan="2"|SE | + | !rowspan="2"|SE |
|uni | |uni | ||
− | | style="background: | + | | style="background: yellow;" | |
− | | style="background: | + | | style="background: yellow;" | |
− | | style="background: | + | | style="background: yellow;" | |
− | | style="background: | + | | style="background: yellow; color: white" | |
− | | style="background: | + | | style="background: yellow; color: white" | |
− | | style="background: | + | | style="background: yellow;" | |
|- | |- | ||
|multi | |multi | ||
− | | style="background: | + | | style="background: yellow;" | Note 3 |
− | | style="background: | + | | style="background: yellow;" | |
− | | style="background: | + | | style="background: yellow;" | |
− | | style="background: | + | | style="background: yellow; color: white" | |
− | | style="background: | + | | style="background: yellow; color: white" | |
− | | style="background: | + | | style="background: yellow;" | |
|- | |- | ||
!rowspan="2"|FS | !rowspan="2"|FS | ||
|uni | |uni | ||
+ | | style="background: yellow;" | Note 3 | ||
+ | | style="background: yellow;" | | ||
+ | | style="background: yellow;" | | ||
| style="background: green; color: white" | | | style="background: green; color: white" | | ||
− | | style="background: | + | | style="background: yellow; color: white" | |
− | | style="background: | + | | style="background: yellow;" | |
− | |||
− | |||
− | |||
|- | |- | ||
|multi | |multi | ||
− | | style="background: | + | | style="background: yellow;" | Note 3 |
− | | style="background: | + | | style="background: yellow;" | |
− | | style="background: | + | | style="background: yellow;" | |
− | | style="background: | + | | style="background: green; color: white" | |
− | | style="background: | + | | style="background: yellow; color: white" | |
− | | style="background: | + | | style="background: yellow;" | |
|- | |- | ||
!rowspan="4"|InOrder | !rowspan="4"|InOrder | ||
!rowspan="2"|SE | !rowspan="2"|SE | ||
|uni | |uni | ||
− | | style="background: | + | | style="background: red; color: white" | |
| style="background: red; color: white" | | | style="background: red; color: white" | | ||
| style="background: red; color: white" | | | style="background: red; color: white" | | ||
Line 433: | Line 433: | ||
|- | |- | ||
|multi | |multi | ||
− | | style="background: | + | | style="background: red; color: white" | |
| style="background: red; color: white" | | | style="background: red; color: white" | | ||
| style="background: red; color: white" | | | style="background: red; color: white" | | ||
Line 442: | Line 442: | ||
!rowspan="2"|FS | !rowspan="2"|FS | ||
|uni | |uni | ||
− | | style="background: | + | | style="background: red; color: white" | |
| style="background: red; color: white" | | | style="background: red; color: white" | | ||
| style="background: red; color: white" | | | style="background: red; color: white" | | ||
Line 450: | Line 450: | ||
|- | |- | ||
|multi | |multi | ||
− | | style="background: | + | | style="background: red; color: white" | |
| style="background: red; color: white" | | | style="background: red; color: white" | | ||
| style="background: red; color: white" | | | style="background: red; color: white" | | ||
Line 458: | Line 458: | ||
|- | |- | ||
!rowspan="4"|O3 | !rowspan="4"|O3 | ||
− | !rowspan="2"|SE | + | !rowspan="2"|SE |
|uni | |uni | ||
− | | style="background: | + | | style="background: yellow;" | |
− | | style="background: | + | | style="background: yellow; color: white" | |
− | | style="background: | + | | style="background: yellow; color: white" | |
− | | style="background: | + | | style="background: yellow; color: white" | |
− | | style="background: | + | | style="background: yellow; color: white" | |
− | | style="background: | + | | style="background: yellow; color: white" | |
|- | |- | ||
|multi | |multi | ||
− | | style="background: | + | | style="background: yellow;" | Note 3 |
− | | style="background: red; color: white"| Note 2 | + | | style="background: red; color: white" | Note 2 |
− | | style="background: | + | | style="background: yellow; color: white" | |
− | | style="background: | + | | style="background: yellow; color: white" | |
− | | style="background: | + | | style="background: yellow; color: white" | |
− | | style="background: | + | | style="background: yellow; color: white" | |
|- | |- | ||
!rowspan="2"|FS | !rowspan="2"|FS | ||
|uni | |uni | ||
− | | style="background: | + | | style="background: orange; color: white" | Note 3 |
− | | style="background: red; color: white"| Note 2 | + | | style="background: red; color: white" | Note 2 |
− | | style="background: | + | | style="background: yellow; color: white" | |
− | | style="background: | + | | style="background: yellow; color: white" | |
− | | style="background: | + | | style="background: yellow; color: white" | |
− | | style="background: | + | | style="background: yellow; color: white" | |
|- | |- | ||
|multi | |multi | ||
− | | style="background: | + | | style="background: orange; color: white" | Note 3 |
− | | style="background: red; color: white"| Note 2 | + | | style="background: red; color: white" | Note 2 |
− | | style="background: | + | | style="background: yellow; color: white" | |
− | | style="background: | + | | style="background: yellow; color: white" | |
− | | style="background: | + | | style="background: yellow; color: white" | |
− | | style="background: | + | | style="background: yellow; color: white" | |
|- | |- | ||
|} | |} |
Revision as of 04:52, 27 April 2015
The follow six tables describe the current state of component combinations in gem5.
Contents
Color Key
Definitely does not work |
Might work |
Should work |
Definitely works |
Unknown |
Notes
Below Classic and Ruby refers to the two memory systems that we have in gem5. MI, MESI and MOESI (multiple flavors) are the coherence protocols that are supported in Ruby memory system. Then we have the CPU models: AtomicSimple, TimingSimple, InOrder and O3.
Numbers in the squares below refer to the following notes:
- Ruby does not support atomic-mode accesses
- The MI_example protocol cannot support LL/SC semantics
- Classic caches do not support x86 locked (atomic RMW) accesses. The AtomicSimple CPU model enforces atomic RMW accesses itself, so this only affects correctness for timing-mode CPU models.
ISA Support Matrices
Alpha
Processor | Memory System | |||||||
---|---|---|---|---|---|---|---|---|
Model | System | Count | Classic | Ruby | ||||
MI_example | MOESI_hammer | MESI_CMP_directory | MOESI_CMP_directory | MOESI_CMP_token | ||||
AtomicSimple | SE | uni | Note 1 | Note 1 | Note 1 | Note 1 | Note 1 | |
multi | Note 1 | Note 1 | Note 1 | Note 1 | Note 1 | |||
FS | uni | Note 1 | Note 1 | Note 1 | Note 1 | Note 1 | ||
multi | Note 1 | Note 1 | Note 1 | Note 1 | Note 1 | |||
TimingSimple | SE | uni | ||||||
multi | Note 2 | |||||||
FS | uni | |||||||
multi | Note 2 | |||||||
InOrder | SE | uni | ||||||
multi | Note 2 | |||||||
FS | uni | |||||||
multi | Note 2 | |||||||
O3 | SE | uni | ||||||
multi | Note 2 | |||||||
FS | uni | |||||||
multi | Note 2 |
ARM
Processor | Memory System | |||||||
---|---|---|---|---|---|---|---|---|
Model | System | Count | Classic | Ruby | ||||
MI_example | MOESI_hammer | MESI_CMP_directory | MOESI_CMP_directory | MOESI_CMP_token | ||||
AtomicSimple | SE | uni | Note 1 | Note 1 | Note 1 | Note 1 | Note 1 | |
multi | Note 1 | Note 1 | Note 1 | Note 1 | Note 1 | |||
FS | uni | Note 1 | Note 1 | Note 1 | Note 1 | Note 1 | ||
multi | Note 1 | Note 1 | Note 1 | Note 1 | Note 1 | |||
TimingSimple | SE | uni | ||||||
multi | Note 2 | |||||||
FS | uni | |||||||
multi | Note 2 | |||||||
InOrder | SE | uni | ||||||
multi | ||||||||
FS | uni | |||||||
multi | ||||||||
O3 | SE | uni | ||||||
multi | Note 2 | |||||||
FS | uni | Note 2 | ||||||
multi | Note 2 |
x86
Processor | Memory System | |||||||
---|---|---|---|---|---|---|---|---|
Model | System | Count | Classic | Ruby | ||||
MI_example | MOESI_hammer | MESI_CMP_directory | MOESI_CMP_directory | MOESI_CMP_token | ||||
AtomicSimple | SE | uni | Note 1 | Note 1 | Note 1 | Note 1 | Note 1 | |
multi | Note 1 | Note 1 | Note 1 | Note 1 | Note 1 | |||
FS | uni | Note 1 | Note 1 | Note 1 | Note 1 | Note 1 | ||
multi | Note 1 | Note 1 | Note 1 | Note 1 | Note 1 | |||
TimingSimple | SE | uni | ||||||
multi | Note 3 | |||||||
FS | uni | Note 3 | ||||||
multi | Note 3 | |||||||
InOrder | SE | uni | ||||||
multi | ||||||||
FS | uni | |||||||
multi | ||||||||
O3 | SE | uni | ||||||
multi | Note 3 | Note 2 | ||||||
FS | uni | Note 3 | Note 2 | |||||
multi | Note 3 | Note 2 |
SPARC
Processor | Memory System | |||||||
---|---|---|---|---|---|---|---|---|
Model | System | Count | Classic | Ruby | ||||
MI_example | MOESI_hammer | MESI_CMP_directory | MOESI_CMP_directory | MOESI_CMP_token | ||||
AtomicSimple | SE | uni | Note 1 | Note 1 | Note 1 | Note 1 | Note 1 | |
multi | Note 1 | Note 1 | Note 1 | Note 1 | Note 1 | |||
FS | uni | Note 1 | Note 1 | Note 1 | Note 1 | Note 1 | ||
multi | Note 1 | Note 1 | Note 1 | Note 1 | Note 1 | |||
TimingSimple | SE | uni | ||||||
multi | ||||||||
FS | uni | |||||||
multi | ||||||||
InOrder | SE | uni | ||||||
multi | ||||||||
FS | uni | |||||||
multi | ||||||||
O3 | SE | uni | ||||||
multi | Note 2 | |||||||
FS | uni | |||||||
multi | Note 2 |
PowerPC
Processor | Memory System | |||||||
---|---|---|---|---|---|---|---|---|
Model | System | Count | Classic | Ruby | ||||
MI_example | MOESI_hammer | MESI_CMP_directory | MOESI_CMP_directory | MOESI_CMP_token | ||||
AtomicSimple | SE | uni | Note 1 | Note 1 | Note 1 | Note 1 | Note 1 | |
multi | Note 1 | Note 1 | Note 1 | Note 1 | Note 1 | |||
FS | uni | Note 1 | Note 1 | Note 1 | Note 1 | Note 1 | ||
multi | Note 1 | Note 1 | Note 1 | Note 1 | Note 1 | |||
TimingSimple | SE | uni | ||||||
multi | ||||||||
FS | uni | |||||||
multi | ||||||||
InOrder | SE | uni | ||||||
multi | ||||||||
FS | uni | |||||||
multi | ||||||||
O3 | SE | uni | ||||||
multi | Note 2 | |||||||
FS | uni | |||||||
multi | Note 2 |
MIPS
Processor | Memory System | |||||||
---|---|---|---|---|---|---|---|---|
Model | System | Count | Classic | Ruby | ||||
MI_example | MOESI_hammer | MESI_CMP_directory | MOESI_CMP_directory | MOESI_CMP_token | ||||
AtomicSimple | SE | uni | Note 1 | Note 1 | Note 1 | Note 1 | Note 1 | |
multi | Note 1 | Note 1 | Note 1 | Note 1 | Note 1 | |||
FS | uni | Note 1 | Note 1 | Note 1 | Note 1 | Note 1 | ||
multi | Note 1 | Note 1 | Note 1 | Note 1 | Note 1 | |||
TimingSimple | SE | uni | ||||||
multi | ||||||||
FS | uni | |||||||
multi | ||||||||
InOrder | SE | uni | ||||||
multi | ||||||||
FS | uni | |||||||
multi | ||||||||
O3 | SE | uni | ||||||
multi | Note 2 | |||||||
FS | uni | |||||||
multi | Note 2 |