x86 isa: This patch attempts an implementation at mwait.
authorMarc Orr <morr@cs.wisc.edu>
Thu, 6 Nov 2014 11:42:22 +0000 (05:42 -0600)
committerMarc Orr <morr@cs.wisc.edu>
Thu, 6 Nov 2014 11:42:22 +0000 (05:42 -0600)
commitbf80734b2ce080cd75f4b57be47e37465e8901f1
tree0ba9cbba64cd017e95b5a3f637d58435208ebc3c
parent3947f88d0fa35d2134fa3e999e05bb184a01e396
x86 isa: This patch attempts an implementation at mwait.

Mwait works as follows:
1. A cpu monitors an address of interest (monitor instruction)
2. A cpu calls mwait - this loads the cache line into that cpu's cache.
3. The cpu goes to sleep.
4. When another processor requests write permission for the line, it is
   evicted from the sleeping cpu's cache. This eviction is forwarded to the
   sleeping cpu, which then wakes up.

Committed by: Nilay Vaish <nilay@cs.wisc.edu>
26 files changed:
configs/ruby/MESI_Three_Level.py
configs/ruby/MESI_Two_Level.py
configs/ruby/MI_example.py
configs/ruby/MOESI_CMP_directory.py
configs/ruby/MOESI_CMP_token.py
configs/ruby/MOESI_hammer.py
configs/ruby/Ruby.py
src/arch/x86/isa/decoder/two_byte_opcodes.isa
src/arch/x86/isa/formats/formats.isa
src/arch/x86/isa/formats/monitor_mwait.isa [new file with mode: 0644]
src/cpu/SConscript
src/cpu/base.cc
src/cpu/base.hh
src/cpu/base_dyn_inst.hh
src/cpu/checker/cpu.hh
src/cpu/exec_context.hh
src/cpu/inorder/inorder_dyn_inst.cc
src/cpu/inorder/inorder_dyn_inst.hh
src/cpu/minor/exec_context.hh
src/cpu/o3/cpu.cc
src/cpu/o3/cpu.hh
src/cpu/simple/atomic.cc
src/cpu/simple/base.cc
src/cpu/simple/base.hh
src/cpu/simple/timing.cc
src/cpu/simple/timing.hh