> I found the following part in MOSI_SMP_bcast-cache.sm.
>
> action(f_issueGETS, "f", desc="Issue GETS.") {
> DEBUG_EXPR(machineID);
> enqueue(addressNetwork_out, AddressMsg, latency="ISSUE_LATENCY") {
> out_msg.Address := address;
> out_msg.Type := CoherenceRequestType:GETS;
> out_msg.CacheState := cache_state_to_int(getState(address));
> out_msg.Requestor := machineID;
> out_msg.Destination.broadcast(MachineType:L1Cache);
> out_msg.Destination.add(map_Address_to_Directory(address));
> out_msg.MessageSize := MessageSizeType:Control;
> }
> }
>
> Can I only assign a destination address instead of broadcast this message,
> because I only want one consumer to process this request. Maybe then others.
> How should I do? Can I use out_msg.Destination.add(DestinationMachineID) ?
If your protocol innovation can handle a unicast message instead of a
broadcast, then Yes, out_msg.Destination.add(DestinationMachineID) is
correct. The directory protocols do _not_ use broadcast.
--Mike
|