====== Multi-Queue Bus module ====== ===== Description ===== Like the regular System Bus module, this module allow to route memory requests in a CMP environment based on a bus architecture. However this bus implements two different queues: One for requeust / answers coming from the CPU side, and one for the answers coming from memory side. This bus can therefor be used in out-of-order environment without risking starvation due to high number of CPU requests. This bus module is also compatible with bus snooping. This bus module has a dedicated pair of ports to connect from/to the memory: inMEM and outMEM, and some pair of ports to connect from/to some cpus: inCPU[i] and outCPU[i] as shown in Figure below. {{ modules:cycle:network:bus:module.png }} The purpose of this bus module is to forward every message received on one of its input port to every output port but the one corresponding to the incoming input port. If several messages are received in the same cycle from the CPU side, a round robin algorithm select which incoming request will be enqueued. As stated earlier memory answers have their own queue, and this queue has a higher priority thant the cpu queue. ===== Module details ===== * [[Parameters]] of the module: Details on the module template parameters. * [[Interface]] of the module: Defines the module communication ports. * [[Internals]] of the module: Some details about the main internal data structures and algorithms. * [[Statistics]] of the module: List of the statistics gathered by the module. ===== Links ===== * Source file in the repository: [[https://unisim.org/svn/public/components/CycleLevel/packages/topology/bus/bus_multiqueue.sim|bus_multiqueue.sim]] ===== Reference Manual ===== * [[http://unisim.org/website/refman/clm/modules/bus_multiqueue/refman.pdf|Multi Queue Bus module reference manual]] ===== Simulators using this module ===== * [[simulators:cycle:ppc-score|Single-core PowerPC405 simulator]] * [[simulators:cycle:arm-score|Single-core Arm v5 te simulator]] * [[simulators:cycle:ppc-pthread|Shared Memory PowerPC405 CMP]]