As you already now a 1st order CIC filter is identical to a moving average filter.
Lets consider the decimation factor to be 2 and having the following time series:
input = 10 11 12 13 14 15
Lets have a look at the convolution with the fir filter h=[1 1]
0 10 11 12 13 14 15
1 1 0 0 0 0 0
The first output sample will be 10
0 10 11 12 13 14 15
0 1 1 0 0 0 0
The second will be 21
. And so on
The result of a moving average filter without decimation would be obviously:
output = 10 21 23 25 27 29
After Decimation the output will be
output = 10 23 27
Nothing special so far, however, if you think about the effort to do the calculations it becomes obvious that every second calculation is wasted, as it is thrown away later. Nevertheless, the input sample is important. So lets have a look on the value of the register of the integrator in the case of the moving average filter:
input 10 11 12 13 14 15
reg 0 10 11 12 13 14
output 10 21 23 25 27 29
Now lets have a look at integrate-and-dump approach:
The first input sample 10
comes in, the register will have the default value of 0 in it so the put is 10
.
input 10
reg 0
output 10
One would now assume that the register value is also updated, but as the decimation factor is to, this entry is dumped and the register holds the value of zero. When the second sample comes in the situation looks like this:
input 10 11
reg 0 0
output 10 11
Now the register will be updated and the new value is 11
So for the third sample the situation is the following:
input 10 11 12
reg 0 0 11
output 10 11 23
The register value will be dumped again and we get:
input 10 11 12 13
reg 0 0 11 0
output 10 11 23 13
After all we have:
input 10 11 12 13 14 15
reg 0 0 11 0 13 0
output 10 11 23 13 27 15
Taking the decimation into consideration we get again:
output 10 23 27
Summarizing, the idea behind integrate-and-dump is to take into consideration that not every output sample needs to be stored as after decimation it is thrown away. So you restart the integration only when necessary.