2コアだけでなく、なんと24コアのデモ(OVPsim_multicore24_arm_Cortex-A9UP)もあります。
基本的には、2コアと同じです。
ソースソード(OVPsim_multicore24_arm_Cortex-A9UP.c)を見てみると、
icmNewProcessor関数とicmLoadProcessorMemory関数をコア数(24回)繰り返しているだけです。
変更している部分は、stepIndex変数の部分のみです
基本的には、2コアと同じです。
ソースソード(OVPsim_multicore24_arm_Cortex-A9UP.c)を見てみると、
icmNewProcessor関数とicmLoadProcessorMemory関数をコア数(24回)繰り返しているだけです。
変更している部分は、stepIndex変数の部分のみです
これなら、100コアでもOKですね!
#define MANYCORE 24 for (stepIndex=0; stepIndex < MANYCORE; stepIndex++) { char cpuName[64]; sprintf(cpuName, "CPU-%s-%d", variant, stepIndex); processor[stepIndex] = icmNewProcessor( cpuName, // CPU name "arm", // CPU type stepIndex, // CPU cpuId 0, // CPU model flags 32, // address bits arm7Model, // model file "modelAttrs", // morpher attributes SIM_ATTRS, // attributes icmAttr, // user-defined attributes arm7Semihost, // semi-hosting file "modelAttrs" // semi-hosting attributes ); // load the application executable file into processor memory space if(!icmLoadProcessorMemory(processor[stepIndex], application, False, Fal e, False)) { return -1; } }シミュレーション結果では、各コアは9.4MIPSで24コアでは、225MIPSでした。
Info --------------------------------------------------- Info CPU '/CPU-Cortex-A9UP-0' STATISTICS Info Type : arm (Cortex-A9UP) Info Nominal MIPS : 100 Info Final program counter : 0xe98 Info Simulated instructions: 25,596,689 Info Simulated MIPS : 9.4 Info --------------------------------------------------- Info Info --------------------------------------------------- Info TOTAL Info Simulated instructions: 614,320,536 Info Simulated MIPS : 225.0 Info ---------------------------------------------------
検証、Verification、OVP