Date: | Sun, 5 Jul 2009 22:03:40 +0200 |
---|---|
From: | David Bonavila <david.bonavila@xxxxxxxxxxxxxxxxxx> |
Subject: | [Gems-users] Using traces to implement fault-tolerance in a CMP... |
Hi all. I need to implement a kind of fault tolerance in a CMP. My idea is to have a 2-core CMP: CPU0 executes a program, and then CPU1 re-executes the same program. CPU1 has to execute the same instructions that CPU0 has just executed a few moments before. My idea is to implement a token system, where CPU0 increments the token, and when token >= 4 (or any number of instructions) CPU1 executes 4 instructions. So, only when CPU0 has executed more than 4 instructions, CPU1 will be able to re-execute those 4 instructions. But when CPU1 re-executes those 4 instructions, we can't be sure that the next 4 instructions in CPU1 would be the same 4 instructions that have previously been executed by CPU0, because of predictors, branches or whatever. So I think I should use a trace to solve that, and then run the same trace in both cores. Then, instruction order would be the same, wouldn't it?? Do you think this can be done and is it going to work?? I think I would need to modify just Opal, because Ruby just models memory subsystem (and what I am trying to do is about fetch, retire...), wouldn't I? PS: I am using Simics 3.0.29 and GEMS 2.1. Thank you in advance! Best regards, David |
[← Prev in Thread] | Current Thread | [Next in Thread→] |
---|---|---|
|
Previous by Date: | Re: [Gems-users] How can I handle non-contiguous physical address?, Dan Gibson |
---|---|
Next by Date: | Re: [Gems-users] Running benchmark occurs L1 OVERFLOW and some benckmarks halt for a long time, huitzu shih |
Previous by Thread: | Re: [Gems-users] Using Multiple CC Protocols, Daniel Sánchez Pedreño |
Next by Thread: | [Gems-users] What does "istcdisable" means?, junghun lee |
Indexes: | [Date] [Thread] |