Ok, I just read about the extraNonce field on the wiki. That's what's changed when the nonce overflows.
Do workers have their hands on this extraNonce?
EDIT:
Just found this:
So it requires at least one getwork per 2^32 hashes (1 share). To make it a little more complex there is a method called n-time-rolling which allows the miner to simply increment the time locally. This allows multiple runs through the nonce range on one getwork request.
Allowing the worker to manipulate the timestamp might help, but if the timestamp is in seconds, I'm afraid that might not be enough. According to
this page, BFL claims its MiniRig will be capable of calculating 1,5*10
12 h/s. Rounding 1000 to 1024 (2
10), that would make something close to 1,5*2
40 h/s. It would overflow the nonce 256 times per second! (if I haven't made any mistakes on these powers there)
It's true that if the worker can change the timestamp every second, it only needs to request the amount of work it's capable of processing in one full second. For the next second, it can change the timestamp and repeat everything again...
Or is the timestamp in milliseconds?
Anyway, how will (have?) people solve(d) this?