A non-volatile 
semiconductor memory includes: multiple write pipelines, each including a 
memory array; a timing circuit which sequentially starts 
programming operations in the pipelines; and a shared 
charge pump and 
voltage regulation circuit that drives a current through the memory cells being programmed. Staggering the starts of 
programming operations reduces the current demand on the 
charge pump because spikes that occur at the starts of 
programming operations, for example, when using channel 
hot electron injection, are distributed over time rather than occurring all at once. 
Noise, which can reduce the accuracy of write operations, is also reduced because the 
total current required from the 
charge pump is more nearly constant. As further aspect of the invention, each write pipeline can perform a write operation as alternating programming cycles and verify cycles. During a programming cycle, the shared charge pump drives a current through a selected 
memory cell to change the 
threshold voltage of the selected 
memory cell. During a verify cycle, the write circuit determines whether the selected 
memory cell has reached its target 
threshold voltage level. The write pipelines can be partitioned into two banks where pipelines in one 
bank perform programming cycles while pipelines in the other 
bank perform verify cycles. More generally the write pipelines are partitioned into multiple banks where each 
bank starts programming cycles at times that differ from the starts of programming cycles in the other banks.