one flit is 80 bits (64 bits is data payload of a flit = 8 bytes). Each QPI link cyclea"phit" issent (20 bits = 16 data bits + 4 other system bits).That means per QPI link cycle (or per QPI transfer) two payload data bytes can be sent.You need four QPI link cycles to transfer one flit. Note that QPI link clock frequency is not equal to core TSC frequency (InvariantTSC).In PCM:computeQPISpeed, the InvariantTSCis usedjust as a timer function to pause the program for a certain amount of time and count the number of sent flits during this period(FLT_SENT).Please also see more details on QPI in this whitepaper.On Westmere/Nehalem-EX the NULL_IDLE event internally runs/increments with uncore clock frequency, therefore it is normalized with the UncoreTSC.
Regarding different TSC/frequencies:
InvariantTSC increments with the nominal core frequency
UncoreTSC is different from InvariantTSC: it runs at the frequency of the processor uncore
QPI link clockfrequency is different from InvariantTSC and UncoreTSC.In other terms it is theQPI GTransfers/second.