To follow up what Bob has said, CV5 is top speed and CV6 is midrange - so how fast the engine goes at full throttle and how fast it goes at 50% throttle. The decoder sets a straight line between the amount in CV2 (start power) and CV6, and then a straight line between CV6 and CV5. (Many early decoders only had CV2 and 5; that's why they had to use CV6 for midrange.)
So if you have CV2 set to zero, CV 6 to 90, and CV 5 to 180, it would essentially be a straight line, so each increase in speed step would increase the speed the same amount, regardless of whether you went from step 3 to step 4, or step 23 to step 24. In effect, the decoder/programmer fills in the in-between speed steps automagically.
IF you choose to, you can turn that off and use a speed curve using CVs 67-94. Decoders and DCC systems can be set to use 14, 28 or 128 speed steps, but decoder's speed curves can only be set using those 28 CVs.
Although you can use them to create a straight speed curve (which seems like an oxymoron but is correct) but most people opting to use them want to set up a curve - so like for example, the first 14 steps only go from 0 to 30% and the last 14 go from 30% to 100%.
I set my engines to all go a scale 64 MPH at speed step 128, in a straight line 'curve'. So each speed step increase equals 1/2 scale MPH increase in speed. If I re-set my throttle (CVP) to use 28 speed steps, each increase in speed step is about 2.25 scale MPH. If I set it to 14 steps, each step increase would increase speed about 4.50 scale MPH. So 50% power is still 32 scale MPH, but using 128 speed steps allows me greater control to slowly increase or decrease speed.