140 likes | 284 Views
SC+ILP=RC. Chris Gniady, Babak Falsafi, and T. N. Vijaykumar. February 24 th 2006. SC – execute memory operations one at a time, in program order RC – no order unless explicitly requested by software (programmer) ILP – out of order and speculative execution.
E N D
SC+ILP=RC Chris Gniady, Babak Falsafi, and T. N. Vijaykumar February 24th 2006
SC – execute memory operations one at a time, in program order • RC – no order unless explicitly requested by software (programmer) • ILP – out of order and speculative execution
SC++ - runs like RC, talks like SC • Speculates on all instructions, including stores – RC-like freedom • Detects when SC is violated and recovers • L2 cache must cooperate (memory and remote nodes expect SC)
Rollback when speculative block is • Invalidated by DSM directory • Read by remote node • Replaced from L2 cache • Livelock safety • Instruction that caused rollback executed and retired non-speculatively • Deadlock safety • No coherence message processing while in rollback mode
SC + ILP = RC if hardware has • Speculative loads andstores • Enough space for speculative processor and memory state • No slowdown due to added complexity • Infrequent rollbacks in execution
Rollback frequency depends on SW • SW can generate high amounts of • Data races • False sharing • Cache conflicts • Argument: such SW is unlikely to benefit from DSM anyway
Evaluation using simulation • Scientific code benchmarks • 8 MIPS R10K cores