Difference between revisions of "Status Matrix"
From gem5
					
										
					
					 (x86 locking probably affects I/O in uniprocessor FS systems too)  | 
				|||
| Line 243: | Line 243: | ||
|-  | |-  | ||
|multi  | |multi  | ||
| − | | style="background:   | + | | style="background: yellow;" | Note 5  | 
| style="background: yellow;" |  | | style="background: yellow;" |  | ||
| style="background: yellow;" |  | | style="background: yellow;" |  | ||
| Line 252: | Line 252: | ||
!rowspan="2"|FS  | !rowspan="2"|FS  | ||
|uni  | |uni  | ||
| − | | style="background:   | + | | style="background: yellow;" | Note 5  | 
| style="background: yellow;" |  | | style="background: yellow;" |  | ||
| style="background: yellow;" |  | | style="background: yellow;" |  | ||
| Line 260: | Line 260: | ||
|-  | |-  | ||
|multi  | |multi  | ||
| − | | style="background:   | + | | style="background: yellow;" | Note 5  | 
| style="background: yellow;" |  | | style="background: yellow;" |  | ||
| style="background: yellow;" |  | | style="background: yellow;" |  | ||
| Line 305: | Line 305: | ||
!rowspan="2"|SE  | !rowspan="2"|SE  | ||
|uni  | |uni  | ||
| − | | style="background: yellow;   | + | | style="background: yellow;" |  | 
| style="background: orange; color: white" |  | | style="background: orange; color: white" |  | ||
| style="background: orange; color: white" |  | | style="background: orange; color: white" |  | ||
| Line 313: | Line 313: | ||
|-  | |-  | ||
|multi  | |multi  | ||
| − | | style="background:   | + | | style="background: yellow;" | Note 5  | 
| style="background: red; color: white" | Note 3  | | style="background: red; color: white" | Note 3  | ||
| style="background: red; color: white" | Note 3  | | style="background: red; color: white" | Note 3  | ||
| Line 322: | Line 322: | ||
!rowspan="2"|FS  | !rowspan="2"|FS  | ||
|uni  | |uni  | ||
| − | | style="background:   | + | | style="background: orange; color: white" | Note 5  | 
| style="background: red; color: white" |  | | style="background: red; color: white" |  | ||
| style="background: red; color: white" |  | | style="background: red; color: white" |  | ||
| Line 330: | Line 330: | ||
|-  | |-  | ||
|multi  | |multi  | ||
| − | | style="background:   | + | | style="background: orange; color: white" | Note 5  | 
| style="background: red; color: white" | Note 3  | | style="background: red; color: white" | Note 3  | ||
| style="background: red; color: white" | Note 3  | | style="background: red; color: white" | Note 3  | ||
| Line 617: | Line 617: | ||
!rowspan="2"|SE    | !rowspan="2"|SE    | ||
|uni  | |uni  | ||
| − | | style="background: yellow;   | + | | style="background: yellow;" |  | 
| style="background: orange; color: white"|  | | style="background: orange; color: white"|  | ||
| style="background: orange; color: white"|  | | style="background: orange; color: white"|  | ||
| Line 625: | Line 625: | ||
|-  | |-  | ||
|multi  | |multi  | ||
| − | | style="background: yellow;   | + | | style="background: yellow;" |  | 
| style="background: red; color: white" | Note 3  | | style="background: red; color: white" | Note 3  | ||
| style="background: red; color: white" | Note 3  | | style="background: red; color: white" | Note 3  | ||
| Line 685: | Line 685: | ||
!rowspan="2"|FS  | !rowspan="2"|FS  | ||
|uni  | |uni  | ||
| − | | style="background:   | + | | style="background: red;" |  | 
| 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 693: | Line 693: | ||
|-  | |-  | ||
|multi  | |multi  | ||
| − | | style="background:   | + | | style="background: red;" |  | 
| 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 720: | Line 720: | ||
!rowspan="2"|FS  | !rowspan="2"|FS  | ||
|uni  | |uni  | ||
| − | | style="background:   | + | | style="background: red;" |  | 
| − | | style="background:   | + | | style="background: red; color: white"|  | 
| − | | style="background:   | + | | style="background: red; color: white"|  | 
| − | | style="background:   | + | | style="background: red; color: white" |  | 
| − | | style="background:   | + | | style="background: red; color: white" |  | 
| − | | style="background:   | + | | style="background: red; color: white" |  | 
|-  | |-  | ||
|multi  | |multi  | ||
| − | | style="background:   | + | | style="background: red;" |  | 
| − | | style="background:   | + | | style="background: red; color: white"|  | 
| − | | style="background:   | + | | style="background: red; color: white"|  | 
| − | | style="background:   | + | | style="background: red; color: white" |  | 
| − | | style="background:   | + | | style="background: red; color: white" |  | 
| − | | style="background:   | + | | style="background: red; color: white" |  | 
|-  | |-  | ||
!rowspan="4"|InOrder  | !rowspan="4"|InOrder  | ||
| Line 755: | Line 755: | ||
!rowspan="2"|FS  | !rowspan="2"|FS  | ||
|uni  | |uni  | ||
| − | | style="background:   | + | | style="background: red; color: white" |  | 
| − | | style="background:   | + | | style="background: red; color: white"|  | 
| − | | style="background:   | + | | style="background: red; color: white"|  | 
| − | | style="background:   | + | | style="background: red; color: white" |  | 
| − | | style="background:   | + | | style="background: red; color: white" |  | 
| − | | style="background:   | + | | style="background: red; color: white" |  | 
|-  | |-  | ||
|multi  | |multi  | ||
| − | | style="background:   | + | | style="background: red; color: white" |  | 
| − | | style="background:   | + | | style="background: red; color: white"|  | 
| − | | style="background:   | + | | style="background: red; color: white"|  | 
| − | | style="background:   | + | | style="background: red; color: white" |  | 
| − | | style="background:   | + | | style="background: red; color: white" |  | 
| − | | style="background:   | + | | style="background: red; color: white" |  | 
|-  | |-  | ||
!rowspan="4"|O3  | !rowspan="4"|O3  | ||
| Line 790: | Line 790: | ||
!rowspan="2"|FS  | !rowspan="2"|FS  | ||
|uni  | |uni  | ||
| − | | style="background:   | + | | style="background: red;" |  | 
| − | | style="background:   | + | | style="background: red; color: white"|  | 
| − | | style="background:   | + | | style="background: red; color: white"|  | 
| − | | style="background:   | + | | style="background: red; color: white" |  | 
| − | | style="background:   | + | | style="background: red; color: white" |  | 
| − | | style="background:   | + | | style="background: red; color: white" |  | 
|-  | |-  | ||
|multi  | |multi  | ||
| − | | style="background:   | + | | style="background: red;" |  | 
| style="background: red; color: white" | Note 3  | | style="background: red; color: white" | Note 3  | ||
| style="background: red; color: white" | Note 3  | | style="background: red; color: white" | Note 3  | ||
| Line 841: | Line 841: | ||
!rowspan="2"|FS  | !rowspan="2"|FS  | ||
|uni  | |uni  | ||
| − | | style="background:   | + | | style="background: red;" |  | 
| 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 849: | Line 849: | ||
|-  | |-  | ||
|multi  | |multi  | ||
| − | | style="background:   | + | | style="background: red;" |  | 
| 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 876: | Line 876: | ||
!rowspan="2"|FS  | !rowspan="2"|FS  | ||
|uni  | |uni  | ||
| − | | style="background:   | + | | style="background: red;" |  | 
| − | | style="background:   | + | | style="background: red; color: white"|  | 
| − | | style="background:   | + | | style="background: red; color: white"|  | 
| − | | style="background:   | + | | style="background: red; color: white" |  | 
| − | | style="background:   | + | | style="background: red; color: white" |  | 
| − | | style="background:   | + | | style="background: red; color: white" |  | 
|-  | |-  | ||
|multi  | |multi  | ||
| − | | style="background:   | + | | style="background: red;" |  | 
| − | | style="background:   | + | | style="background: red; color: white"|  | 
| − | | style="background:   | + | | style="background: red; color: white"|  | 
| − | | style="background:   | + | | style="background: red; color: white" |  | 
| − | | style="background:   | + | | style="background: red; color: white" |  | 
| − | | style="background:   | + | | style="background: red; color: white" |  | 
|-  | |-  | ||
!rowspan="4"|InOrder  | !rowspan="4"|InOrder  | ||
| Line 911: | Line 911: | ||
!rowspan="2"|FS  | !rowspan="2"|FS  | ||
|uni  | |uni  | ||
| − | | style="background:   | + | | style="background: red; color: white" |  | 
| − | | style="background:   | + | | style="background: red; color: white"|  | 
| − | | style="background:   | + | | style="background: red; color: white"|  | 
| − | | style="background:   | + | | style="background: red; color: white" |  | 
| − | | style="background:   | + | | style="background: red; color: white" |  | 
| − | | style="background:   | + | | style="background: red; color: white" |  | 
|-  | |-  | ||
|multi  | |multi  | ||
| − | | style="background:   | + | | style="background: red; color: white" |  | 
| − | | style="background:   | + | | style="background: red; color: white"|  | 
| − | | style="background:   | + | | style="background: red; color: white"|  | 
| − | | style="background:   | + | | style="background: red; color: white" |  | 
| − | | style="background:   | + | | style="background: red; color: white" |  | 
| − | | style="background:   | + | | style="background: red; color: white" |  | 
|-  | |-  | ||
!rowspan="4"|O3  | !rowspan="4"|O3  | ||
| Line 946: | Line 946: | ||
!rowspan="2"|FS  | !rowspan="2"|FS  | ||
|uni  | |uni  | ||
| − | | style="background:   | + | | style="background: red;" |  | 
| − | | style="background:   | + | | style="background: red; color: white"|  | 
| − | | style="background:   | + | | style="background: red; color: white"|  | 
| − | | style="background:   | + | | style="background: red; color: white" |  | 
| − | | style="background:   | + | | style="background: red; color: white" |  | 
| − | | style="background:   | + | | style="background: red; color: white" |  | 
|-  | |-  | ||
|multi  | |multi  | ||
| − | | style="background:   | + | | style="background: red;" |  | 
| style="background: red; color: white" | Note 3  | | style="background: red; color: white" | Note 3  | ||
| style="background: red; color: white" | Note 3  | | style="background: red; color: white" | Note 3  | ||
Revision as of 21:39, 18 September 2011
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
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
 - Ruby does not support probing the O3 LSQ to enforce non-weak consistency models
 - ARM MP does not support booting with caches, but works otherwise. You can boot without caches then switch to running with caches using either a checkpoint/resume or on-line CPU switchover.
 - 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 | Note 3 | Note 3 | Note 3 | Note 3 | |||
| FS | uni | |||||||
| multi | Note 2 | Note 3 | Note 3 | Note 3 | Note 3 | |||
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 5 | |||||||
| FS | uni | Note 5 | ||||||
| multi | Note 5 | |||||||
| InOrder | SE | uni | ||||||
| multi | ||||||||
| FS | uni | |||||||
| multi | ||||||||
| O3 | SE | uni | ||||||
| multi | Note 5 | Note 3 | Note 3 | Note 3 | Note 3 | Note 3 | ||
| FS | uni | Note 5 | ||||||
| multi | Note 5 | Note 3 | Note 3 | Note 3 | Note 3 | Note 3 | ||
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 4 | Note 1 | Note 1 | Note 1 | Note 1 | Note 1 | ||
| TimingSimple | SE | uni | ||||||
| multi | Note 2 | |||||||
| FS | uni | |||||||
| multi | Note 4 | Note 2 | ||||||
| InOrder | SE | uni | ||||||
| multi | ||||||||
| FS | uni | |||||||
| multi | ||||||||
| O3 | SE | uni | ||||||
| multi | Note 2 | Note 3 | Note 3 | Note 3 | Note 3 | |||
| FS | uni | |||||||
| multi | Note 4 | Note 2 | Note 3 | Note 3 | Note 3 | Note 3 | ||
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 3 | Note 3 | Note 3 | Note 3 | Note 3 | |||
| FS | uni | |||||||
| multi | Note 3 | Note 3 | Note 3 | Note 3 | Note 3 | |||
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 3 | Note 3 | Note 3 | Note 3 | Note 3 | |||
| FS | uni | |||||||
| multi | Note 3 | Note 3 | Note 3 | Note 3 | Note 3 | |||
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 3 | Note 3 | Note 3 | Note 3 | Note 3 | |||
| FS | uni | |||||||
| multi | Note 3 | Note 3 | Note 3 | Note 3 | Note 3 | |||