Patent ID: 8310870

Claim:
A method for programming a set of non-volatile storage elements using a multi-phase programming operation which includes one phase and a next phase, the method comprising: for non-volatile storage elements of a target word line: performing the one phase, including (a) distinguishing faster-programming non-volatile storage elements of the target word line from slower-programming non-volatile storage elements of the target word line, and (b) responsive to the distinguishing: (i) saving, in a first set of latches, programming speed data which distinguishes the faster-programming non-volatile storage elements of the target word line from the slower-programming non-volatile storage elements of the target word line, (ii) continuing programming of at least some of the faster-programming non-volatile storage elements of the target word line, with a programming speed-based slow down measure imposed thereon, in response to the programming speed data in the first set of latches, and (iii) continuing programming of at least some of the slower-programming non-volatile storage elements of the target word line, without imposing a programming speed-based slow down measure; subsequently, performing programming operations for non-volatile storage elements of another word line in the set of non-volatile storage elements; and during the next phase: continuing programming of the faster-programming non-volatile storage elements of the target word line, with a programming speed-based slow down measure imposed, responsive to the programming speed data in the first set of latches, and continuing programming of the slower-programming non-volatile storage elements of the target word line, without imposing a programming speed-based slow down measure, responsive to the programming speed data in the first set of latches.