else: fatal("incapable of building non-alpha or non-x86 full system!") if options.kernel is not None: systems[i].kernel = binary(options.kernel) if options.script is not None: systems[i].readfile = options.script systems[i].cpu = [CPUClass(cpu_id=j) for j in xrange(int(vm_cpus[i]))] total_num_cpus += int(vm_cpus[i]) total_mem_size.value += MemorySize(vm_mems[i]).value #FIXME print "before creating ruby" ruby = Ruby.create_vsystem(options, systems, total_num_cpus, total_mem_size, vm_cpus, vm_mems) print "after ruby" #systems[0].dir_cntrl0.directory.size = options.virtual_mem_size #system.ruby.mem_size = options.mem_size k = 0 for j in xrange(num_vms): for (i, cpu) in enumerate(systems[j].cpu): # # Tie the cpu ports to the correct ruby system ports # cpu.createInterruptController() cpu.icache_port = ruby._cpu_ruby_ports[k].slave cpu.dcache_port = ruby._cpu_ruby_ports[k].slave if buildEnv['TARGET_ISA'] == "x86":
systems[i].cpu[cpu_index].vcpu_start_tick = ( options.vm_context_switch_hyperperiod * cpu_accumulated - options.vm_context_switch_hyperperiod * float(vmm_cpu_matrix[i][j]) + options.vm_context_switch_overhead ) print "hyper period %d" % systems[i].cpu[cpu_index].vcpu_hyperperiod print "start %d" % systems[i].cpu[cpu_index].vcpu_start_tick print "stop %d" % systems[i].cpu[cpu_index].vcpu_stop_tick # assert(systems[i].cpu[cpu_index].vcpu_start_tick < systems[i].cpu[cpu_index].vcpu_stop_tick) if cpu_accumulated > 0: cpu_index += 1 # print "cpu index = %d" % cpu_index # print "before creating ruby" ruby = Ruby.create_vsystem(options, systems, total_num_cpus, total_mem_size, vm_cpus, vm_mems, vmm_cpu_matrix) # print "after ruby" # systems[0].dir_cntrl0.directory.size = options.virtual_mem_size # system.ruby.mem_size = options.mem_size k = 0 for j in xrange(num_vms): for (i, cpu) in enumerate(systems[j].cpu): # # Tie the cpu ports to the correct ruby system ports # cpu.createInterruptController() cpu.icache_port = ruby._cpu_ruby_ports[k].slave cpu.dcache_port = ruby._cpu_ruby_ports[k].slave