Hello everyone, I'd like to use / extend gem5 in order to perform some simulations related to the PCI and other peripherals. However, before I plunge into the code and start developing all the necessary extensions, I just want to make sure that what I want to achieve is feasible and ask for some starting point.
So, I'd like to perform a simulation of a rather complicated system. I need to have two machines that communicate over the network. The target protocol of network communication is RDMA-like (the machines will access each other's memories directly). On each machine, I need to simulate the interactions of many of the peripherals and the units close to peripherals: NIC, IOMMU, PCI bus, bridges, DMA cache controller. And, of course, the main memory and the CPU will be involved as well. PCI bus has to transmit the packets using the PCI protocol, and the DMA cache controller has to react to the packets coming from the NIC and perform invalidations targeted at the CPU caches. First question - can I achieve all this stuff by extending gem5? From what I've seen on the gem5 website, it is more CPU-centric (even if it comes with the options to simulate some basic peripherals) and that's why I'm asking. Second question - are there any example configuration files that provide the simulation basis for the peripherals (PCI bus, NICs etc)? I could probably use them as a starting point. Thanks a lot for any advice / answer. Best regards, Maciej _______________________________________________ gem5-users mailing list gem5-users@gem5.org http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users