ale500 wrote:The IO clock is only 100 MHz, while it can be changed and raised we do not know how it affects i/o.
here is the test program and a trace of a small sample program that uses the 100 MHz reference clock with a buffered 8 bit port.
Note how the thread is waiting for IO till the right cycle comes. the INs are thus 16 cycles apart (4 bytes at 100 MHz each). So, at least it seems to work... The question is now how the other threads affect this timing.
The XMOS PLL/Clocking document appears to suggest that one is allowed to adjust the reference clock up to the system clock frequency(the specification of its upper bound) The reference clock clocks ports and timers. Raising the reference clock rate is only really of interest for buffered ports as processor in instructions take 10ns(4 cycles of system clock) so one could not perform ins faster than 100MHz like this. However, with buffered ports, if it works then individual bits of the port would be clocked in or out faster if one raised the reference clock frequency. This would allow faster buffered I/O.
One can test if raising the reference clock frequency works for timers by using a timer and timing say 100 NOPs, while keeping System clock normal. This would increase the timer resolution of timers at the cost not allowing such long delays. I have tested timing NOPs while raising the System clock frequency, keeping the reference clock at 100MHz and this works, telling one if one is running at 400MHz or 500MHz.
One can test if the faster buffered I/O works(with raised reference clock frequency) by performing several back-to-back in instructions on a buffered port, but remember if you're using a timer to time this, its frequency will be raised too. Giving the same timing value, so one would need to run previous test to confirm faster timer counting before having confidence in the result.
Other threads should not impact I/O timing, as far as I understand, Ins will be performed when the internal buffers are full.
I've not tested this stuff yet, I'd be interested if someone can confirm.(Warning this is somewhat undocumented and might make your hardware HOT) Incidentally I have overclocked(Sytem Clock) a 400MHz L1 at 500MHz(initially by mistake - XN file intented for C5) without ill effects. The processor was still very cool and the processor appeared to operate normally(This may not be reliable/may shortlen processor life/is not technically "in spec"/you may break stuff, but hey:
Live Fast! Burn Bright! Die Young!
Max.