Difference between revisions of "Status Matrix"

From gem5
Jump to: navigation, search
(Alpha)
(ISA Support Matrices)
 
(68 intermediate revisions by 7 users not shown)
Line 1: Line 1:
The follow six tables describe the current state of component combinations in gem5
+
The follow six tables describe the current state of component combinations in gem5.
  
{| border="1"
+
== Color Key ==
 +
{| border="1" class="wikitable"
 
| style="background: red; color: white" | Definitely does not work
 
| style="background: red; color: white" | Definitely does not work
 
|-
 
|-
 
| style="background: orange; color: white" | Might work
 
| style="background: orange; color: white" | Might work
 
|-
 
|-
| style="background: yellow; color: white" | Should work
+
| style="background: yellow" | Should work
 
|-
 
|-
 
| style="background: green; color: white" | Definitely works
 
| style="background: green; color: white" | Definitely works
Line 14: Line 15:
 
|}
 
|}
  
 +
== Notes ==
 +
Below [[Classic Memory System | Classic]] and [[Ruby]] refers to the two memory systems that we have in gem5. [[MI_example|MI]], [[MESI Two Level | MESI]] and [[Ruby#SLICC + Coherence protocols: | MOESI]] (multiple flavors) are the coherence protocols that are supported in Ruby memory system. Then we have the CPU models: [[SimpleCPU | AtomicSimple]], [[SimpleCPU | TimingSimple]], [[InOrder]] and [[O3CPU | 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 ==
 +
 +
'''''THIS PAGE WAS LAST UPDATED IN 2015. IT IS LIKELY OUT OF DATE. USE THIS AS A GUIDELINE.'''''
  
 
=== Alpha ===
 
=== Alpha ===
  
{| border="1"
+
{| border="1" class="wikitable" align=center style="background:#B0C4DE;"
 
!colspan="3"|Processor
 
!colspan="3"|Processor
 
!colspan="6"|Memory System
 
!colspan="6"|Memory System
 
|-
 
|-
!rowspan="2"|Cpu Model
+
!rowspan="2"|Model
 
!rowspan="2"|System
 
!rowspan="2"|System
!rowspan="2"|Processor Count
+
!rowspan="2"|Count
 
!rowspan="2"|Classic
 
!rowspan="2"|Classic
 
!colspan="5"|Ruby
 
!colspan="5"|Ruby
Line 29: Line 42:
 
|MI_example||MOESI_hammer||MESI_CMP_directory||MOESI_CMP_directory||MOESI_CMP_token
 
|MI_example||MOESI_hammer||MESI_CMP_directory||MOESI_CMP_directory||MOESI_CMP_token
 
|-
 
|-
!rowspan="4"|Atomic
+
!rowspan="4"|AtomicSimple
 
!rowspan="2"|SE  
 
!rowspan="2"|SE  
|uniprocessor
+
|uni
| style="background: green; color: white" |
 
| style="background: green; color: white" |
 
| style="background: green; color: white" |
 
| style="background: green; color: white" |
 
| style="background: green; color: white" |
 
 
| style="background: green; color: white" |
 
| 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
 +
| style="background: red; color: white" | Note 1
 
|-
 
|-
|mulitprocessor
+
|multi
| style="background: green; color: white" |
 
| style="background: red; color: white" | MI cannot support LL/SC semantics
 
| style="background: green; color: white" |
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
 
 
| style="background: green; color: white" |
 
| 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
 +
| style="background: red; color: white" | Note 1
 
|-
 
|-
 
!rowspan="2"|FS
 
!rowspan="2"|FS
|uniprocessor
+
|uni
| style="background: green; color: white" |
 
| style="background: green; color: white" |
 
| style="background: green; color: white" |
 
| style="background: green; color: white" |
 
| style="background: green; color: white" |
 
 
| style="background: green; color: white" |
 
| 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
 +
| style="background: red; color: white" | Note 1
 
|-
 
|-
|mulitprocessor
+
|multi
| style="background: green; color: white" |
 
| style="background: red; color: white" | MI cannot support LL/SC semantics
 
| style="background: green; color: white" |
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
 
 
| style="background: green; color: white" |
 
| 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
 +
| style="background: red; color: white" | Note 1
 
|-
 
|-
 
!rowspan="4"|TimingSimple
 
!rowspan="4"|TimingSimple
 
!rowspan="2"|SE
 
!rowspan="2"|SE
|uniprocessor
+
|uni
 
| style="background: green; color: white" |
 
| style="background: green; color: white" |
 
| style="background: green; color: white" |
 
| style="background: green; color: white" |
Line 74: Line 87:
 
| style="background: green; color: white" |
 
| style="background: green; color: white" |
 
|-
 
|-
|mulitprocessor
+
|multi
 
| style="background: green; color: white" |
 
| style="background: green; color: white" |
| style="background: red; color: white" | MI cannot support LL/SC semantics
+
| style="background: red; color: white" | Note 2
 
| style="background: green; color: white" |
 
| style="background: green; color: white" |
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
Line 83: Line 96:
 
|-
 
|-
 
!rowspan="2"|FS
 
!rowspan="2"|FS
|uniprocessor
+
|uni
 
| style="background: green; color: white" |
 
| style="background: green; color: white" |
 
| style="background: green; color: white" |
 
| style="background: green; color: white" |
Line 91: Line 104:
 
| style="background: green; color: white" |
 
| style="background: green; color: white" |
 
|-
 
|-
|mulitprocessor
+
|multi
 
| style="background: green; color: white" |
 
| style="background: green; color: white" |
| style="background: red; color: white" | MI cannot support LL/SC semantics
+
| style="background: red; color: white" | Note 2
 
| style="background: green; color: white" |
 
| style="background: green; color: white" |
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
Line 99: Line 112:
 
| style="background: green; color: white" |
 
| style="background: green; color: white" |
 
|-
 
|-
!rowspan="4"|In-Order
+
!rowspan="4"|InOrder
 
!rowspan="2"|SE
 
!rowspan="2"|SE
|uniprocessor
+
|uni
 
| style="background: green; color: white" |
 
| style="background: green; color: white" |
 
| style="background: purple; color: white" |
 
| style="background: purple; color: white" |
Line 109: Line 122:
 
| style="background: purple; color: white" |
 
| style="background: purple; color: white" |
 
|-
 
|-
|mulitprocessor
+
|multi
 
| style="background: green; color: white" |
 
| style="background: green; color: white" |
| style="background: red; color: white" | MI cannot support LL/SC semantics
+
| style="background: red; color: white" | Note 2
 
| style="background: purple; color: white" |
 
| style="background: purple; color: white" |
 
| style="background: purple; color: white" |
 
| style="background: purple; color: white" |
Line 118: Line 131:
 
|-
 
|-
 
!rowspan="2"|FS
 
!rowspan="2"|FS
|uniprocessor
+
|uni
 
| style="background: green; color: white" |
 
| style="background: green; color: white" |
 
| style="background: purple; color: white" |
 
| style="background: purple; color: white" |
Line 126: Line 139:
 
| style="background: purple; color: white" |
 
| style="background: purple; color: white" |
 
|-
 
|-
|mulitprocessor
+
|multi
 
| style="background: green; color: white" |
 
| style="background: green; color: white" |
| style="background: red; color: white" | MI cannot support LL/SC semantics
+
| style="background: red; color: white" | Note 2
 
| style="background: purple; color: white" |
 
| style="background: purple; color: white" |
 
| style="background: purple; color: white" |
 
| style="background: purple; color: white" |
Line 134: Line 147:
 
| style="background: purple; color: white" |
 
| style="background: purple; color: white" |
 
|-
 
|-
!rowspan="4"|o3
+
!rowspan="4"|O3
 
!rowspan="2"|SE
 
!rowspan="2"|SE
|uniprocessor
+
|uni
 
| style="background: green; color: white" |
 
| style="background: green; color: white" |
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
Line 144: Line 157:
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
 
|-
 
|-
|mulitprocessor
+
|multi
 
| style="background: green; color: white" |
 
| style="background: green; color: white" |
| style="background: red; color: white" | MI cannot support LL/SC semantics
+
| style="background: red; color: white" | Note 2
| style="background: red; color: white" | Ruby does not support o3 LSQ
+
| style="background: orange; color: white" |
| style="background: red; color: white" | Ruby does not support o3 LSQ
+
| style="background: orange; color: white" |
| style="background: red; color: white" | Ruby does not support o3 LSQ
+
| style="background: orange; color: white" |
| style="background: red; color: white" | Ruby does not support o3 LSQ
+
| style="background: orange; color: white" |
 
|-
 
|-
 
!rowspan="2"|FS
 
!rowspan="2"|FS
|uniprocessor
+
|uni
 
| style="background: green; color: white" |
 
| style="background: green; color: white" |
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
Line 161: Line 174:
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
 
|-
 
|-
|mulitprocessor
+
|multi
 
| style="background: green; color: white" |
 
| style="background: green; color: white" |
| style="background: red; color: white" | MI cannot support LL/SC semantics
+
| style="background: red; color: white" | Note 2
| style="background: red; color: white" | Ruby does not support o3 LSQ
+
| style="background: orange; color: white" |
| style="background: red; color: white" | Ruby does not support o3 LSQ
+
| style="background: orange; color: white" |
| style="background: red; color: white" | Ruby does not support o3 LSQ
+
| style="background: orange; color: white" |
| style="background: red; color: white" | Ruby does not support o3 LSQ
+
| style="background: orange; color: white" |
 
|-
 
|-
 
|}
 
|}
  
=== x86 ===
+
=== ARM ===
  
{| border="1"
+
{| border="1" class="wikitable" align=center style="background:#B0C4DE;"
 
!colspan="3"|Processor
 
!colspan="3"|Processor
 
!colspan="6"|Memory System
 
!colspan="6"|Memory System
 
|-
 
|-
!rowspan="2"|Cpu Model
+
!rowspan="2"|Model
 
!rowspan="2"|System
 
!rowspan="2"|System
!rowspan="2"|Processor Count
+
!rowspan="2"|Count
 
!rowspan="2"|Classic
 
!rowspan="2"|Classic
 
!colspan="5"|Ruby
 
!colspan="5"|Ruby
Line 185: Line 198:
 
|MI_example||MOESI_hammer||MESI_CMP_directory||MOESI_CMP_directory||MOESI_CMP_token
 
|MI_example||MOESI_hammer||MESI_CMP_directory||MOESI_CMP_directory||MOESI_CMP_token
 
|-
 
|-
!rowspan="4"|Atomic
+
!rowspan="4"|AtomicSimple
 
!rowspan="2"|SE  
 
!rowspan="2"|SE  
|uniprocessor
+
|uni
| style="background: yellow;" |
+
| style="background: green; color: white" |
| style="background: yellow;" |
+
| style="background: red; color: white" | Note 1
| style="background: yellow;" |
+
| style="background: red; color: white" | Note 1
| style="background: orange; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: orange; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: yellow;" |
+
| style="background: red; color: white" | Note 1
 
|-
 
|-
|mulitprocessor
+
|multi
| style="background: yellow;" |
+
| style="background: green; color: white" |
| style="background: yellow;" |
+
| style="background: red; color: white" | Note 1
| style="background: yellow;" |
+
| style="background: red; color: white" | Note 1
| style="background: orange; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: orange; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: yellow;" |
+
| style="background: red; color: white" | Note 1
 
|-
 
|-
 
!rowspan="2"|FS
 
!rowspan="2"|FS
|uniprocessor
+
|uni
| style="background: yellow;" |
+
| style="background: green; color: white" |
| style="background: yellow;" |
+
| style="background: red; color: white" | Note 1
| style="background: yellow;" |
+
| style="background: red; color: white" | Note 1
| style="background: orange; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: orange; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: yellow;" |
+
| style="background: red; color: white" | Note 1
 
|-
 
|-
|mulitprocessor
+
|multi
| style="background: yellow;" |
+
| style="background: green; color: white" |
| style="background: yellow;" |
+
| style="background: red; color: white" | Note 1
| style="background: yellow;" |
+
| style="background: red; color: white" | Note 1
| style="background: orange; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: orange; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: yellow;" |
+
| style="background: red; color: white" | Note 1
 
|-
 
|-
 
!rowspan="4"|TimingSimple
 
!rowspan="4"|TimingSimple
!rowspan="2"|SE
+
!rowspan="2"|SE  
|uniprocessor
+
|uni
| style="background: yellow;" |
+
| style="background: green; color: white" |
| style="background: yellow;" |
+
| style="background: orange; color: white"|
| style="background: yellow;" |
+
| style="background: orange; color: white"|
 +
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
| style="background: yellow;" |
 
 
|-
 
|-
|mulitprocessor
+
|multi
| style="background: yellow;" |
+
| style="background: green; color: white" |
| style="background: yellow;" |
+
| style="background: red; color: white"| Note 2
| style="background: yellow;" |
+
| style="background: orange; color: white"|
 +
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
| style="background: yellow;" |
 
 
|-
 
|-
 
!rowspan="2"|FS
 
!rowspan="2"|FS
|uniprocessor
+
|uni
| style="background: yellow;" |
+
| style="background: green; color: white" |
| style="background: yellow;" |
+
| style="background: orange; color: white"|
| style="background: yellow;" |
+
| style="background: orange; color: white"|
 +
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
| style="background: yellow;" |
 
 
|-
 
|-
|mulitprocessor
+
|multi
| style="background: yellow;" |
+
| style="background: green; color: white" |
| style="background: yellow;" |
+
| style="background: red; color: white"| Note 2
| style="background: yellow;" |
+
| style="background: orange; color: white"|
 +
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
| style="background: yellow;" |
 
 
|-
 
|-
!rowspan="4"|In-Order
+
!rowspan="4"|InOrder
 
!rowspan="2"|SE
 
!rowspan="2"|SE
|uniprocessor
+
|uni
| style="background: red; color: white" |
+
| 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 265: Line 278:
 
| style="background: red; color: white" |
 
| style="background: red; color: white" |
 
|-
 
|-
|mulitprocessor
+
|multi
| style="background: red; color: white" |
+
| 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 274: Line 287:
 
|-
 
|-
 
!rowspan="2"|FS
 
!rowspan="2"|FS
|uniprocessor
+
|uni
| style="background: red; color: white" |
+
| 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 282: Line 295:
 
| style="background: red; color: white" |
 
| style="background: red; color: white" |
 
|-
 
|-
|mulitprocessor
+
|multi
| style="background: red; color: white" |
+
| 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 290: Line 303:
 
| style="background: red; color: white" |
 
| style="background: red; color: white" |
 
|-
 
|-
!rowspan="4"|o3
+
!rowspan="4"|O3
!rowspan="2"|SE
+
!rowspan="2"|SE  
|uniprocessor
+
|uni
| style="background: yellow; color: white" |
+
| style="background: green; color: white" |
 +
| style="background: orange; color: white"|
 +
| style="background: orange; color: white"|
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
 +
| style="background: orange; color: white" |
 +
|-
 +
|multi
 +
| style="background: green; color: white" |
 +
| style="background: red; color: white"| Note 2
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
|-
 
|mulitprocessor
 
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
| style="background: red; color: white" | Ruby does not support o3 LSQ
 
| style="background: red; color: white" | Ruby does not support o3 LSQ
 
| style="background: red; color: white" | Ruby does not support o3 LSQ
 
| style="background: red; color: white" | Ruby does not support o3 LSQ
 
| style="background: red; color: white" | Ruby does not support o3 LSQ
 
 
|-
 
|-
 
!rowspan="2"|FS
 
!rowspan="2"|FS
|uniprocessor
+
|uni
| style="background: red; color: white" |
+
| style="background: green; color: white" |
| style="background: red; color: white" |
+
| style="background: red; color: white"| Note 2
| style="background: red; color: white" |
+
| style="background: orange; color: white"|
| style="background: red; color: white" |
+
| style="background: orange; color: white" |
| style="background: red; color: white" |
+
| style="background: orange; color: white" |
| style="background: red; color: white" |
+
| style="background: orange; color: white" |
 
|-
 
|-
|mulitprocessor
+
|multi
| style="background: red; color: white" |
+
| style="background: green; color: white" |
| style="background: red; color: white" | Ruby does not support o3 LSQ
+
| style="background: red; color: white"| Note 2
| style="background: red; color: white" | Ruby does not support o3 LSQ
+
| style="background: orange; color: white" |
| style="background: red; color: white" | Ruby does not support o3 LSQ
+
| style="background: orange; color: white" |
| style="background: red; color: white" | Ruby does not support o3 LSQ
+
| style="background: orange; color: white" |
| style="background: red; color: white" | Ruby does not support o3 LSQ
+
| style="background: orange; color: white" |
 
|-
 
|-
 
|}
 
|}
  
=== ARM ===
+
=== x86 ===
  
{| border="1"
+
{| border="1" class="wikitable" align=center style="background:#B0C4DE;"
 
!colspan="3"|Processor
 
!colspan="3"|Processor
 
!colspan="6"|Memory System
 
!colspan="6"|Memory System
 
|-
 
|-
!rowspan="2"|Cpu Model
+
!rowspan="2"|Model
 
!rowspan="2"|System
 
!rowspan="2"|System
!rowspan="2"|Processor Count
+
!rowspan="2"|Count
 
!rowspan="2"|Classic
 
!rowspan="2"|Classic
 
!colspan="5"|Ruby
 
!colspan="5"|Ruby
Line 341: Line 354:
 
|MI_example||MOESI_hammer||MESI_CMP_directory||MOESI_CMP_directory||MOESI_CMP_token
 
|MI_example||MOESI_hammer||MESI_CMP_directory||MOESI_CMP_directory||MOESI_CMP_token
 
|-
 
|-
!rowspan="4"|Atomic
+
!rowspan="4"|AtomicSimple
 
!rowspan="2"|SE  
 
!rowspan="2"|SE  
|uniprocessor
+
|uni
| style="background: green; color: white" |
+
| style="background: yellow;" |
| style="background: orange; color: white"|
+
| style="background: red; color: white" | Note 1
| style="background: orange; color: white"|
+
| style="background: red; color: white" | Note 1
| style="background: orange; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: orange; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: orange; color: white" |
+
| style="background: red; color: white" | Note 1
 
|-
 
|-
|mulitprocessor
+
|multi
| style="background: green; color: white" |
+
| style="background: yellow;" |
| style="background: red; color: white"| MI cannot support LL/SC semantics
+
| style="background: red; color: white" | Note 1
| style="background: orange; color: white"|
+
| style="background: red; color: white" | Note 1
| style="background: orange; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: orange; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: orange; color: white" |
+
| style="background: red; color: white" | Note 1
 
|-
 
|-
 
!rowspan="2"|FS
 
!rowspan="2"|FS
|uniprocessor
+
|uni
| style="background: green; color: white" |
+
| style="background: yellow;" |
| style="background: orange; color: white"|
+
| style="background: red; color: white" | Note 1
| style="background: orange; color: white"|
+
| style="background: red; color: white" | Note 1
| style="background: orange; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: orange; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: orange; color: white" |
+
| style="background: red; color: white" | Note 1
 
|-
 
|-
|mulitprocessor
+
|multi
| style="background: red; color: white" | Support being developed
+
| style="background: yellow;" |
| style="background: red; color: white"| MI cannot support LL/SC semantics
+
| style="background: red; color: white" | Note 1
| style="background: orange; color: white"|
+
| style="background: red; color: white" | Note 1
| style="background: orange; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: orange; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: orange; color: white" |
+
| style="background: red; color: white" | Note 1
 
|-
 
|-
 
!rowspan="4"|TimingSimple
 
!rowspan="4"|TimingSimple
!rowspan="2"|SE  
+
!rowspan="2"|SE
|uniprocessor
+
|uni
| style="background: green; color: white" |
+
| style="background: yellow;" |
| style="background: orange; color: white"|
+
| style="background: yellow;" |
| style="background: orange; color: white"|
+
| style="background: yellow;" |
| style="background: orange; color: white" |
+
| style="background: yellow; color: white" |
| style="background: orange; color: white" |
+
| style="background: yellow; color: white" |
| style="background: orange; color: white" |
+
| style="background: yellow;" |
 
|-
 
|-
|mulitprocessor
+
|multi
| style="background: green; color: white" |
+
| style="background: yellow;" | Note 3
| style="background: red; color: white"| MI cannot support LL/SC semantics
+
| style="background: yellow;" |
| style="background: orange; color: white"|
+
| style="background: yellow;" |
| style="background: orange; color: white" |
+
| style="background: yellow; color: white" |
| style="background: orange; color: white" |
+
| style="background: yellow; color: white" |
| style="background: orange; color: white" |
+
| style="background: yellow;" |
 
|-
 
|-
 
!rowspan="2"|FS
 
!rowspan="2"|FS
|uniprocessor
+
|uni
 +
| style="background: yellow;" | Note 3
 +
| style="background: yellow;" |
 +
| style="background: yellow;" |
 
| style="background: green; color: white" |
 
| style="background: green; color: white" |
| style="background: orange; color: white"|
+
| style="background: yellow; color: white" |
| style="background: orange; color: white"|
+
| style="background: yellow;" |
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
 
 
|-
 
|-
|mulitprocessor
+
|multi
| style="background: red; color: white" | Support being developed
+
| style="background: yellow;" | Note 3
| style="background: red; color: white"| MI cannot support LL/SC semantics
+
| style="background: yellow;" |
| style="background: orange; color: white"|
+
| style="background: yellow;" |
| style="background: orange; color: white" |
+
| style="background: green; color: white" |
| style="background: orange; color: white" |
+
| style="background: yellow; color: white" |
| style="background: orange; color: white" |
+
| style="background: yellow;" |
 
|-
 
|-
!rowspan="4"|In-Order
+
!rowspan="4"|InOrder
 
!rowspan="2"|SE
 
!rowspan="2"|SE
|uniprocessor
+
|uni
 
| style="background: red; color: white" |
 
| style="background: red; color: white" |
 
| style="background: red; color: white" |
 
| style="background: red; color: white" |
Line 421: Line 434:
 
| style="background: red; color: white" |
 
| style="background: red; color: white" |
 
|-
 
|-
|mulitprocessor
+
|multi
 
| style="background: red; color: white" |
 
| style="background: red; color: white" |
 
| style="background: red; color: white" |  
 
| style="background: red; color: white" |  
Line 430: Line 443:
 
|-
 
|-
 
!rowspan="2"|FS
 
!rowspan="2"|FS
|uniprocessor
+
|uni
 
| style="background: red; color: white" |
 
| style="background: red; color: white" |
 
| style="background: red; color: white" |
 
| style="background: red; color: white" |
Line 438: Line 451:
 
| style="background: red; color: white" |
 
| style="background: red; color: white" |
 
|-
 
|-
|mulitprocessor
+
|multi
 
| style="background: red; color: white" |
 
| style="background: red; color: white" |
 
| style="background: red; color: white" |
 
| style="background: red; color: white" |
Line 446: Line 459:
 
| style="background: red; color: white" |
 
| style="background: red; color: white" |
 
|-
 
|-
!rowspan="4"|o3
+
!rowspan="4"|O3
!rowspan="2"|SE  
+
!rowspan="2"|SE
|uniprocessor
+
|uni
| style="background: green; color: white" |
+
| style="background: yellow;" |
| style="background: orange; color: white"|
+
| style="background: yellow; color: white" |
| style="background: orange; color: white"|
+
| style="background: yellow; color: white" |
| style="background: orange; color: white" |
+
| style="background: yellow; color: white" |
| style="background: orange; color: white" |
+
| style="background: yellow; color: white" |
| style="background: orange; color: white" |
+
| style="background: yellow; color: white" |
 
|-
 
|-
|mulitprocessor
+
|multi
| style="background: green; color: white" |
+
| style="background: yellow;" | Note 3
| style="background: red; color: white"| MI cannot support LL/SC semantics
+
| style="background: red; color: white" | Note 2
| style="background: red; color: white" | Ruby does not support o3 LSQ
+
| style="background: yellow; color: white" |
| style="background: red; color: white" | Ruby does not support o3 LSQ
+
| style="background: yellow; color: white" |
| style="background: red; color: white" | Ruby does not support o3 LSQ
+
| style="background: yellow; color: white" |
| style="background: red; color: white" | Ruby does not support o3 LSQ
+
| style="background: yellow; color: white" |
 
|-
 
|-
 
!rowspan="2"|FS
 
!rowspan="2"|FS
|uniprocessor
+
|uni
| style="background: green; color: white" |
+
| style="background: orange; color: white" | Note 3
| style="background: orange; color: white"|
+
| style="background: red; color: white" | Note 2
| style="background: orange; color: white"|
+
| style="background: yellow; color: white" |
| style="background: orange; color: white" |
+
| style="background: yellow; color: white" |
| style="background: orange; color: white" |
+
| style="background: yellow; color: white" |
| style="background: orange; color: white" |
+
| style="background: yellow; color: white" |
 
|-
 
|-
|mulitprocessor
+
|multi
| style="background: red; color: white" |
+
| style="background: orange; color: white" | Note 3
| style="background: red; color: white"| MI cannot support LL/SC semantics
+
| style="background: red; color: white" | Note 2
| style="background: red; color: white" | Ruby does not support o3 LSQ
+
| style="background: yellow; color: white" |
| style="background: red; color: white" | Ruby does not support o3 LSQ
+
| style="background: yellow; color: white" |
| style="background: red; color: white" | Ruby does not support o3 LSQ
+
| style="background: yellow; color: white" |
| style="background: red; color: white" | Ruby does not support o3 LSQ
+
| style="background: yellow; color: white" |
 
|-
 
|-
 
|}
 
|}
Line 485: Line 498:
 
=== SPARC ===
 
=== SPARC ===
  
{| border="1"
+
{| border="1" class="wikitable" align=center style="background:#B0C4DE;"
 
!colspan="3"|Processor
 
!colspan="3"|Processor
 
!colspan="6"|Memory System
 
!colspan="6"|Memory System
 
|-
 
|-
!rowspan="2"|Cpu Model
+
!rowspan="2"|Model
 
!rowspan="2"|System
 
!rowspan="2"|System
!rowspan="2"|Processor Count
+
!rowspan="2"|Count
 
!rowspan="2"|Classic
 
!rowspan="2"|Classic
 
!colspan="5"|Ruby
 
!colspan="5"|Ruby
Line 497: Line 510:
 
|MI_example||MOESI_hammer||MESI_CMP_directory||MOESI_CMP_directory||MOESI_CMP_token
 
|MI_example||MOESI_hammer||MESI_CMP_directory||MOESI_CMP_directory||MOESI_CMP_token
 
|-
 
|-
!rowspan="4"|Atomic
+
!rowspan="4"|AtomicSimple
 
!rowspan="2"|SE  
 
!rowspan="2"|SE  
|uniprocessor
+
|uni
 
| style="background: yellow;" |
 
| style="background: yellow;" |
| style="background: orange; color: white"|
+
| style="background: red; color: white" | Note 1
| style="background: orange; color: white"|
+
| style="background: red; color: white" | Note 1
| style="background: orange; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: orange; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: orange; color: white" |
+
| style="background: red; color: white" | Note 1
 
|-
 
|-
|mulitprocessor
+
|multi
 
| style="background: yellow;" |
 
| style="background: yellow;" |
| style="background: orange; color: white"|
+
| style="background: red; color: white" | Note 1
| style="background: orange; color: white"|
+
| style="background: red; color: white" | Note 1
| style="background: orange; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: orange; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: orange; color: white" |
+
| style="background: red; color: white" | Note 1
 
|-
 
|-
 
!rowspan="2"|FS
 
!rowspan="2"|FS
|uniprocessor
+
|uni
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
 
 
| style="background: orange; color: white" |
 
| style="background: orange; 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
 +
| style="background: red; color: white" | Note 1
 
|-
 
|-
|mulitprocessor
+
|multi
 
| style="background: red; color: white" |  
 
| style="background: red; color: white" |  
| style="background: red; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: red; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: red; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: red; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: red; color: white" |
+
| style="background: red; color: white" | Note 1
 
|-
 
|-
 
!rowspan="4"|TimingSimple
 
!rowspan="4"|TimingSimple
 
!rowspan="2"|SE  
 
!rowspan="2"|SE  
|uniprocessor
+
|uni
 
| style="background: yellow;" |
 
| style="background: yellow;" |
 
| style="background: orange; color: white"|
 
| style="background: orange; color: white"|
Line 542: Line 555:
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
 
|-
 
|-
|mulitprocessor
+
|multi
 
| style="background: yellow;" |
 
| style="background: yellow;" |
 
| style="background: orange; color: white"|
 
| style="background: orange; color: white"|
Line 551: Line 564:
 
|-
 
|-
 
!rowspan="2"|FS
 
!rowspan="2"|FS
|uniprocessor
+
|uni
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
Line 559: Line 572:
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
 
|-
 
|-
|mulitprocessor
+
|multi
 
| style="background: red; color: white" |  
 
| style="background: red; color: white" |  
 
| style="background: red; color: white" |
 
| style="background: red; color: white" |
Line 567: Line 580:
 
| style="background: red; color: white" |
 
| style="background: red; color: white" |
 
|-
 
|-
!rowspan="4"|In-Order
+
!rowspan="4"|InOrder
 
!rowspan="2"|SE  
 
!rowspan="2"|SE  
|uniprocessor
+
|uni
| style="background: orange; color: white" |
+
| style="background: red; color: white" |
| style="background: orange; color: white"|
+
| style="background: red; color: white"|
| style="background: orange; color: white"|
+
| style="background: red; color: white"|
| style="background: orange; color: white" |
+
| style="background: red; color: white" |
| style="background: orange; color: white" |
+
| style="background: red; color: white" |
| style="background: orange; color: white" |
+
| style="background: red; color: white" |
 
|-
 
|-
|mulitprocessor
+
|multi
| style="background: orange; color: white" |
+
| style="background: red; color: white" |
| style="background: orange; color: white"|
+
| style="background: red; color: white"|
| style="background: orange; color: white"|
+
| style="background: red; color: white"|
| style="background: orange; color: white" |
+
| style="background: red; color: white" |
| style="background: orange; color: white" |
+
| style="background: red; color: white" |
| style="background: orange; color: white" |
+
| style="background: red; color: white" |
 
|-
 
|-
 
!rowspan="2"|FS
 
!rowspan="2"|FS
|uniprocessor
+
|uni
| style="background: orange; color: white" |
+
| style="background: red; color: white" |
| style="background: orange; color: white" |
+
| style="background: red; color: white" |
| style="background: orange; color: white" |
+
| style="background: red; color: white" |
| style="background: orange; color: white" |
+
| style="background: red; color: white" |
| style="background: orange; color: white" |
+
| style="background: red; color: white" |
| style="background: orange; color: white" |
+
| style="background: red; color: white" |
 
|-
 
|-
|mulitprocessor
+
|multi
 
| style="background: red; color: white" |  
 
| style="background: red; color: white" |  
 
| style="background: red; color: white" |
 
| style="background: red; color: white" |
Line 602: Line 615:
 
| style="background: red; color: white" |
 
| style="background: red; color: white" |
 
|-
 
|-
!rowspan="4"|o3
+
!rowspan="4"|O3
 
!rowspan="2"|SE  
 
!rowspan="2"|SE  
|uniprocessor
+
|uni
| style="background: orange; color: white" |
+
| style="background: yellow;" |
 
| style="background: orange; color: white"|
 
| style="background: orange; color: white"|
 
| style="background: orange; color: white"|
 
| style="background: orange; color: white"|
Line 612: Line 625:
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
 
|-
 
|-
|mulitprocessor
+
|multi
 +
| style="background: yellow;" |
 +
| style="background: red; color: white" | Note 2
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
| style="background: orange; color: white"|
 
| style="background: orange; color: white"|
 
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
 
| style="background: orange; color: white" |
Line 621: Line 634:
 
|-
 
|-
 
!rowspan="2"|FS
 
!rowspan="2"|FS
|uniprocessor
+
|uni
| style="background: orange; color: white" |
+
| style="background: red; color: white" |
| style="background: orange; color: white" |
+
| style="background: red; color: white" |
| style="background: orange; color: white" |
+
| style="background: red; color: white" |
| style="background: orange; color: white" |
+
| style="background: red; color: white" |
| style="background: orange; color: white" |
+
| style="background: red; color: white" |
| style="background: orange; color: white" |
+
| style="background: red; color: white" |
 
|-
 
|-
|mulitprocessor
+
|multi
 
| style="background: red; color: white" |  
 
| style="background: red; color: white" |  
| style="background: red; color: white" |
+
| style="background: red; color: white" |Note 2
 
| style="background: red; color: white" |
 
| style="background: red; color: white" |
 
| style="background: red; color: white" |
 
| style="background: red; color: white" |
Line 641: Line 654:
 
=== PowerPC ===
 
=== PowerPC ===
  
{| border="1"
+
{| border="1" class="wikitable" align=center style="background:#B0C4DE;"
 
!colspan="3"|Processor
 
!colspan="3"|Processor
 
!colspan="6"|Memory System
 
!colspan="6"|Memory System
 
|-
 
|-
!rowspan="2"|Cpu Model
+
!rowspan="2"|Model
 
!rowspan="2"|System
 
!rowspan="2"|System
!rowspan="2"|Processor Count
+
!rowspan="2"|Count
 
!rowspan="2"|Classic
 
!rowspan="2"|Classic
 
!colspan="5"|Ruby
 
!colspan="5"|Ruby
Line 653: Line 666:
 
|MI_example||MOESI_hammer||MESI_CMP_directory||MOESI_CMP_directory||MOESI_CMP_token
 
|MI_example||MOESI_hammer||MESI_CMP_directory||MOESI_CMP_directory||MOESI_CMP_token
 
|-
 
|-
!rowspan="4"|Atomic
+
!rowspan="4"|AtomicSimple
 
!rowspan="2"|SE  
 
!rowspan="2"|SE  
|uniprocessor
+
|uni
 
| style="background: yellow;" |
 
| style="background: yellow;" |
| style="background: purple; color: white"|
+
| style="background: red; color: white" | Note 1
| style="background: purple; color: white"|
+
| style="background: red; color: white" | Note 1
| style="background: purple; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: purple; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: purple; color: white" |
+
| style="background: red; color: white" | Note 1
 
|-
 
|-
|mulitprocessor
+
|multi
 
| style="background: orange;" |
 
| style="background: orange;" |
| style="background: purple; color: white"|
+
| style="background: red; color: white" | Note 1
| style="background: purple; color: white"|
+
| style="background: red; color: white" | Note 1
| style="background: purple; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: purple; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: purple; color: white" |
+
| style="background: red; color: white" | Note 1
 
|-
 
|-
 
!rowspan="2"|FS
 
!rowspan="2"|FS
|uniprocessor
+
|uni
| style="background: yellow;" |
+
| style="background: red;" |
| style="background: purple; color: white"|
+
| style="background: red; color: white" | Note 1
| style="background: purple; color: white"|
+
| style="background: red; color: white" | Note 1
| style="background: purple; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: purple; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: purple; color: white" |
+
| style="background: red; color: white" | Note 1
 
|-
 
|-
|mulitprocessor
+
|multi
| style="background: orange;" |
+
| style="background: red;" |
| style="background: purple; color: white"|
+
| style="background: red; color: white" | Note 1
| style="background: purple; color: white"|
+
| style="background: red; color: white" | Note 1
| style="background: purple; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: purple; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: purple; color: white" |
+
| style="background: red; color: white" | Note 1
 
|-
 
|-
 
!rowspan="4"|TimingSimple
 
!rowspan="4"|TimingSimple
 
!rowspan="2"|SE  
 
!rowspan="2"|SE  
|uniprocessor
+
|uni
 
| style="background: yellow;" |
 
| style="background: yellow;" |
 
| style="background: purple; color: white"|
 
| style="background: purple; color: white"|
Line 698: Line 711:
 
| style="background: purple; color: white" |
 
| style="background: purple; color: white" |
 
|-
 
|-
|mulitprocessor
+
|multi
 
| style="background: orange;" |
 
| style="background: orange;" |
 
| style="background: purple; color: white"|
 
| style="background: purple; color: white"|
Line 707: Line 720:
 
|-
 
|-
 
!rowspan="2"|FS
 
!rowspan="2"|FS
|uniprocessor
+
|uni
| style="background: yellow;" |
+
| style="background: red;" |
| style="background: purple; color: white"|
+
| style="background: red; color: white"|
| style="background: purple; color: white"|
+
| style="background: red; color: white"|
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
 
|-
 
|-
|mulitprocessor
+
|multi
| style="background: orange;" |
+
| style="background: red;" |
| style="background: purple; color: white"|
+
| style="background: red; color: white"|
| style="background: purple; color: white"|
+
| style="background: red; color: white"|
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
 
|-
 
|-
!rowspan="4"|In-Order
+
!rowspan="4"|InOrder
 
!rowspan="2"|SE  
 
!rowspan="2"|SE  
|uniprocessor
+
|uni
 
| style="background: purple; color: white" |
 
| style="background: purple; color: white" |
 
| style="background: purple; color: white"|
 
| style="background: purple; color: white"|
Line 733: Line 746:
 
| style="background: purple; color: white" |
 
| style="background: purple; color: white" |
 
|-
 
|-
|mulitprocessor
+
|multi
 
| style="background: purple; color: white" |
 
| style="background: purple; color: white" |
 
| style="background: purple; color: white"|
 
| style="background: purple; color: white"|
Line 742: Line 755:
 
|-
 
|-
 
!rowspan="2"|FS
 
!rowspan="2"|FS
|uniprocessor
+
|uni
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
| style="background: purple; color: white"|
+
| style="background: red; color: white"|
| style="background: purple; color: white"|
+
| style="background: red; color: white"|
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
 
|-
 
|-
|mulitprocessor
+
|multi
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
| style="background: purple; color: white"|
+
| style="background: red; color: white"|
| style="background: purple; color: white"|
+
| style="background: red; color: white"|
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
 
|-
 
|-
!rowspan="4"|o3
+
!rowspan="4"|O3
 
!rowspan="2"|SE  
 
!rowspan="2"|SE  
|uniprocessor
+
|uni
 
| style="background: yellow;" |
 
| style="background: yellow;" |
 
| style="background: purple; color: white"|
 
| style="background: purple; color: white"|
Line 768: Line 781:
 
| style="background: purple; color: white" |
 
| style="background: purple; color: white" |
 
|-
 
|-
|mulitprocessor
+
|multi
 
| style="background: orange;" |
 
| style="background: orange;" |
| style="background: purple; color: white"|
+
| style="background: red; color: white" | Note 2
| style="background: purple; color: white"|
+
| style="background: purple; color: white" |
 
| style="background: purple; color: white" |
 
| style="background: purple; color: white" |
 
| style="background: purple; color: white" |
 
| style="background: purple; color: white" |
Line 777: Line 790:
 
|-
 
|-
 
!rowspan="2"|FS
 
!rowspan="2"|FS
|uniprocessor
+
|uni
| style="background: yellow;" |
+
| style="background: red;" |
| style="background: purple; color: white"|
+
| style="background: red; color: white"|
| style="background: purple; color: white"|
+
| style="background: red; color: white"|
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
 
|-
 
|-
|mulitprocessor
+
|multi
| style="background: orange;" |
+
| style="background: red;" |
| style="background: purple; color: white"|
+
| style="background: red; color: white" | Note 2
| style="background: purple; color: white"|
+
| style="background: red; color: white" |
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
 
|-
 
|-
 
|}
 
|}
Line 797: Line 810:
 
=== MIPS ===
 
=== MIPS ===
  
{| border="1"
+
{| border="1" class="wikitable" align=center style="background:#B0C4DE;"
 
!colspan="3"|Processor
 
!colspan="3"|Processor
 
!colspan="6"|Memory System
 
!colspan="6"|Memory System
 
|-
 
|-
!rowspan="2"|Cpu Model
+
!rowspan="2"|Model
 
!rowspan="2"|System
 
!rowspan="2"|System
!rowspan="2"|Processor Count
+
!rowspan="2"|Count
 
!rowspan="2"|Classic
 
!rowspan="2"|Classic
 
!colspan="5"|Ruby
 
!colspan="5"|Ruby
Line 809: Line 822:
 
|MI_example||MOESI_hammer||MESI_CMP_directory||MOESI_CMP_directory||MOESI_CMP_token
 
|MI_example||MOESI_hammer||MESI_CMP_directory||MOESI_CMP_directory||MOESI_CMP_token
 
|-
 
|-
!rowspan="4"|Atomic
+
!rowspan="4"|AtomicSimple
 
!rowspan="2"|SE  
 
!rowspan="2"|SE  
|uniprocessor
+
|uni
 
| style="background: yellow;" |
 
| style="background: yellow;" |
| style="background: purple; color: white"|
+
| style="background: red; color: white" | Note 1
| style="background: purple; color: white"|
+
| style="background: red; color: white" | Note 1
| style="background: purple; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: purple; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: purple; color: white" |
+
| style="background: red; color: white" | Note 1
 
|-
 
|-
|mulitprocessor
+
|multi
 
| style="background: orange;" |
 
| style="background: orange;" |
| style="background: purple; color: white"|
+
| style="background: red; color: white" | Note 1
| style="background: purple; color: white"|
+
| style="background: red; color: white" | Note 1
| style="background: purple; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: purple; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: purple; color: white" |
+
| style="background: red; color: white" | Note 1
 
|-
 
|-
 
!rowspan="2"|FS
 
!rowspan="2"|FS
|uniprocessor
+
|uni
| style="background: yellow;" |
+
| style="background: red;" |
| style="background: purple; color: white"|
+
| style="background: red; color: white" | Note 1
| style="background: purple; color: white"|
+
| style="background: red; color: white" | Note 1
| style="background: purple; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: purple; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: purple; color: white" |
+
| style="background: red; color: white" | Note 1
 
|-
 
|-
|mulitprocessor
+
|multi
| style="background: orange;" |
+
| style="background: red;" |
| style="background: purple; color: white"|
+
| style="background: red; color: white" | Note 1
| style="background: purple; color: white"|
+
| style="background: red; color: white" | Note 1
| style="background: purple; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: purple; color: white" |
+
| style="background: red; color: white" | Note 1
| style="background: purple; color: white" |
+
| style="background: red; color: white" | Note 1
 
|-
 
|-
 
!rowspan="4"|TimingSimple
 
!rowspan="4"|TimingSimple
 
!rowspan="2"|SE  
 
!rowspan="2"|SE  
|uniprocessor
+
|uni
 
| style="background: yellow;" |
 
| style="background: yellow;" |
 
| style="background: purple; color: white"|
 
| style="background: purple; color: white"|
Line 854: Line 867:
 
| style="background: purple; color: white" |
 
| style="background: purple; color: white" |
 
|-
 
|-
|mulitprocessor
+
|multi
 
| style="background: orange;" |
 
| style="background: orange;" |
 
| style="background: purple; color: white"|
 
| style="background: purple; color: white"|
Line 863: Line 876:
 
|-
 
|-
 
!rowspan="2"|FS
 
!rowspan="2"|FS
|uniprocessor
+
|uni
| style="background: yellow;" |
+
| style="background: red;" |
| style="background: purple; color: white"|
+
| style="background: red; color: white"|
| style="background: purple; color: white"|
+
| style="background: red; color: white"|
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
 
|-
 
|-
|mulitprocessor
+
|multi
| style="background: orange;" |
+
| style="background: red;" |
| style="background: purple; color: white"|
+
| style="background: red; color: white"|
| style="background: purple; color: white"|
+
| style="background: red; color: white"|
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
 
|-
 
|-
!rowspan="4"|In-Order
+
!rowspan="4"|InOrder
 
!rowspan="2"|SE  
 
!rowspan="2"|SE  
|uniprocessor
+
|uni
| style="background: purple; color: white" |
+
| style="background: red;" |
 
| style="background: purple; color: white"|
 
| style="background: purple; color: white"|
 
| style="background: purple; color: white"|
 
| style="background: purple; color: white"|
Line 889: Line 902:
 
| style="background: purple; color: white" |
 
| style="background: purple; color: white" |
 
|-
 
|-
|mulitprocessor
+
|multi
| style="background: purple; color: white" |
+
| style="background: red;" |
 
| style="background: purple; color: white"|
 
| style="background: purple; color: white"|
 
| style="background: purple; color: white"|
 
| style="background: purple; color: white"|
Line 898: Line 911:
 
|-
 
|-
 
!rowspan="2"|FS
 
!rowspan="2"|FS
|uniprocessor
+
|uni
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
| style="background: purple; color: white"|
+
| style="background: red; color: white"|
| style="background: purple; color: white"|
+
| style="background: red; color: white"|
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
 
|-
 
|-
|mulitprocessor
+
|multi
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
| style="background: purple; color: white"|
+
| style="background: red; color: white"|
| style="background: purple; color: white"|
+
| style="background: red; color: white"|
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
 
|-
 
|-
!rowspan="4"|o3
+
!rowspan="4"|O3
 
!rowspan="2"|SE  
 
!rowspan="2"|SE  
|uniprocessor
+
|uni
 
| style="background: yellow;" |
 
| style="background: yellow;" |
 
| style="background: purple; color: white"|
 
| style="background: purple; color: white"|
Line 924: Line 937:
 
| style="background: purple; color: white" |
 
| style="background: purple; color: white" |
 
|-
 
|-
|mulitprocessor
+
|multi
 
| style="background: orange;" |
 
| style="background: orange;" |
| style="background: purple; color: white"|
+
| style="background: red; color: white" | Note 2
| style="background: purple; color: white"|
+
| style="background: purple; color: white" |
 
| style="background: purple; color: white" |
 
| style="background: purple; color: white" |
 
| style="background: purple; color: white" |
 
| style="background: purple; color: white" |
Line 933: Line 946:
 
|-
 
|-
 
!rowspan="2"|FS
 
!rowspan="2"|FS
|uniprocessor
+
|uni
| style="background: yellow;" |
+
| style="background: red;" |
| style="background: purple; color: white"|
+
| style="background: red; color: white"|
| style="background: purple; color: white"|
+
| style="background: red; color: white"|
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
 
|-
 
|-
|mulitprocessor
+
|multi
| style="background: orange;" |
+
| style="background: red;" |
| style="background: purple; color: white"|
+
| style="background: red; color: white" | Note 2
| style="background: purple; color: white"|
+
| style="background: red; color: white" |
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
| style="background: purple; color: white" |
+
| style="background: red; color: white" |
 
|-
 
|-
 
|}
 
|}

Latest revision as of 17:06, 23 February 2018

The follow six tables describe the current state of component combinations in gem5.

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:

  1. Ruby does not support atomic-mode accesses
  2. The MI_example protocol cannot support LL/SC semantics
  3. 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

THIS PAGE WAS LAST UPDATED IN 2015. IT IS LIKELY OUT OF DATE. USE THIS AS A GUIDELINE.

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